MySQL:ALTER COLUMNMODIFY COLUMN 和 CHANGE COLUMN

Posted 嘿咻、晚安喵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL:ALTER COLUMNMODIFY COLUMN 和 CHANGE COLUMN相关的知识,希望对你有一定的参考价值。

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

  • ALTER COLUMN:改变、删除列的默认值。

这个语句会直接修改 .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);

还是自己写 SQL 验证更靠谱!

以上是关于MySQL:ALTER COLUMNMODIFY COLUMN 和 CHANGE COLUMN的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL ALTER

Mysql基础之 ALTER命令

(笔记)Mysql命令alter add:增加表的字段

mysql中的alter子句修改表和表字段信息

MySql之ALTER命令用法详细解读(转)

mysql alter table修改表命令整理