Navicat修改表结构自动生成的SQL说明

使用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)

Navicat修改表结构自动生成的SQL说明_第1张图片

点击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 '钱钱';

怕以后忘了,记录一下= =

你可能感兴趣的:(MySQL数据库)