解决 DataGrip 生成的 set default CURRENT_TIMESTAMP 语句报错问题

问题

通过 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,执行即可成功修改。

本文收录于专栏
一些 MySQL 使用过程中的记录