MySQL:ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN

摘要:
ALTERCOLUMN、MODIFYCOLUMN和CHANGECOLUMN语句修改列:ALTERCOLMN:更改或删除列的默认值--更改列ALTERTABLETestALTERCOLOMNAGESETDEFAULT的默认值17--删除列的缺省值ALTERTABLET estALTERCCOLUMNAGEDROPDEFAULT;MODIFYCOLUMN:修改列数据类型;更改列的默认值并删除列的默认设置。

ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN 语句修改列:

  • ALTER COLUMN:改变、删除列的默认值(备注:列的默认值存储在 .frm 文件中)。
    这个语句会直接修改 .frm 文件而不涉及表数据,所以操作很快。
-- 改变列的默认值
ALTER TABLE test ALTER COLUMN age SET DEFAULT 17;
 
-- 删除列的默认值
ALTER TABLE test ALTER COLUMN age DROP DEFAULT;
  • MODIFY COLUMN:修改列数据类型;改变列的默认值、删除列的默认值(备注:这个操作会做读、插入操作,即:拷贝了整张表到一张新表)。
-- 修改列的数据类型(备注:未执行语句之前是 name VARCHAR(10))
ALTER TABLE test MODIFY COLUMN name VARCHAR(20);
 
-- 改变列的默认值
ALTER TABLE test MODIFY COLUMN name VARCHAR(20) NOT NULL DEFAULT 'a';
 
-- 删除列的默认值
ALTER TABLE test MODIRY COLUMN name VARCHAR(20);
  • CHANGE COLUMN:重命名列;重命名列和修改列的数据类型(备注:单独修改列的数据类型报错)。
-- 重命名列
ALTER TABLE test CHANGE COLUMN name new_name VARCHAR(20) NOT NULL;
 
-- 重命名列和修改列的数据类型(备注:未执行语句之前是 new_name VARCHAR(20))
ALTER TABLE test CHANGE COLUMN new_name latest_name VARCHAR(50);

免责声明:文章转载自《MySQL:ALTER COLUMN、MODIFY COLUMN 和 CHANGE COLUMN》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【转】使用Xcode和Instruments调试解决iOS内存泄露JSON和list之间的转换下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Centos7.6编译安装数据库mysql5.7.22(华为鲲鹏云服务器案例)

Centos7.6编译安装数据库5.7.27(华为鲲鹏云服务器) 1、数据库下载相关安装包 https://downloads.mysql.com/archives/community/ Mysql5.7.22版本有很多的变化,安装时需要安装BOOST库,同安装包一起下载即可。 2、创建安装时需要的目录 mkdir -p /www/server/mysq...

my.cnf配置文件实用优化

[client] 1.登陆过程自动化(这样做可以让你在命令行登陆的时候免去输入用户名和密码) host="mysql服务器地址" user="用户名" password=“密码” 2.自动切换数据库(这样做可以避免每次进入都要use 某数据库) database="你的数据库名字" [mysqld] auto-rehash 启用TAB键自动补齐 skip-...

mysql中整数类型后面的数字,是不是指定这个字段的长度?比如int(11),11代表11个字节吗?

原先对mysql不太理解,但也没有报错。但理解的不够深入。这次补上。 原来以为int(11)是指11个字节,int(10)就是10个字节。我错了。 http://zhidao.baidu.com/link?url=puYWaGBQNKNHgffO5kdvXshF3KmX8OuB4Mor3HXapbNHa8m1CdlF8PJTqVuKa1eKcEd6Bv2N...

解决 MySQL 不输入用户和密码也连接成功的问题

前言 MySQL 5.6.46 版本 分析 数据库安装并启动后,通过 root 账号登录(此时可不用输密码)在mysql 库中可以看到 user 表中的数据如下: 4 条初始记录中的密码字段都为空字符串,且有 1 条记录用户名字段也为空串 用户名与密码字段都为空串说明不用输入用户名密码也可以连接(输入其他字符则连接失败) 用户名字段存在,但密码字段为空...

mysql导出表导入表到tidb

前提在有mysql客户端的服务器上  1、导出并压缩  mysqldump -h database_ip -P 4000 -u root -p database_name(库名) tables_name(表名) |gzip >tables_name.sql.gz 2、解压导出文件  gunzip  tables_name.sql.gz 3、导入tid...

Python 第四十二章 mysql 级联+查询

删除或修改被关联字段 场景:book表和publish表为多对一关系,book表的pid字段外键关联到了publish表的id字段 1 查看外键关系名称: show create table book; | book | CREATE TABLE `book` ( `id` int(11) NOT NULL AUT...