使用Navicat修改表结构时,查看SQL预览会自动生成SQL语句。
公司用的mysql,今天需要修改一个表中的字段,将原来的一个字段属性为double(16,2)的,需要扩展到double(24,6),该字段默认值为NULL.。
仿造如下表信息
CREATE TABLE `double` (
`double` double(16,2) DEFAULT NULL COMMENT '钱钱'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
在图形化界面修改double字段为double(24,6)
点击SQL预览会生成如下SQL
ALTER TABLE `double`
MODIFY COLUMN `double` double(24,6) NULL DEFAULT NULL COMMENT '钱钱' FIRST ;
然后我就直接把这个脚本提交到git上去了,大佬叼了一句,那个double(24,6)后面的写的"NULL DEFAULT NULL",你要搞个什么东西?你就改个double数值长度还写这么长?
说实话,当时我确实有点懵逼,为了方便,我都是在图形界面改好,然后copy为SQL,并没关注那个"NULL"还是"DEFAULT NULL"是个什么鬼。
现记录如下
ALTER TABLE `表名`
MODIFY COLUMN `字段名` 类型 NULL DEFAULT NULL COMMENT 'XXX' FIRST ;
类型后面的NULL和DEFAULT NULL先后顺序无所谓,NULL表示该字段可以为NULL,如果非空则为NOT NULL,"DEFAULT NULL"表示默认值为NULL,当然前提是得允许为NULL,所以合起来经常就看到Navicat自动生成的"... NULL DEFAULT NULL ..."
而COMMENT 'xxx' 表示注释内容,如果在修改表结构时删掉就把注释也删除了。所以简单来讲,为了将这个字段由double(16,2)改为double(24,6)
ALTER TABLE `double`
MODIFY COLUMN `double` double(8,2) COMMENT '钱钱';
怕以后忘了,记录一下= =