[全球工单系统] 阿里云 RDS-MySQL 8.0 日期处理有 BUG

CREATE TABLE `xxx` ( `id` INT(10) NOT NULL AUTO_INCREMENT, `create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `expire_time` TIMESTAMP NOT NULL COMMENT '超时时间', PRIMARY KEY (`id`) USING BTREE
)
COMMENT='test' COLLATE='utf8mb4_general_ci' ENGINE=InnoDB; /* SQL 错误( 1067 ):Invalid default value for 'expire_time' */

有点奇怪,上面是最小复现的语句,在开源版的 MySQL 8.0 上是没有问题的,开的配置是一样(默认)的,

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION 

目前来看触发的条件就是前面一句也是一个 TIMESTAMP 且后面修饰不一样就会出现,单独只有 expire_time 是没有问题的。

(啊,虽然现在用 timestamp 不太合理,但是我觉得我现在这个项目可能活不到 2038 年