问题
通过 DataGrip 给一个 not null 的 datetime 类型字段设置默认值为 CURRENT_TIMESTAMP 时,产生语句为:
alter table diary
alter column publish_time set default CURRENT_TIMESTAMP;
执行该语句,产生了一个报错信息:
[42000][1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CURRENT_TIMESTAMP' at line 2.
解决方案
设置 CURRENT_TIMESTAMP 为默认值时需要通过 modify 语句来进行,更改为以下语句:
alter table collection
MODIFY column create_time datetime NOT NULL default CURRENT_TIMESTAMP;
DataGrip 中修改:可额外修改该列的一些内容,比如改一下列备注信息,语句会变为 modify,执行即可成功修改。