MySQL多版本的时间类型问题
这是学习笔记的第 1758 篇文章 今天在处理一个业务的时候,碰到开发同学提交的一个需求。他在线上环境(MySQL5.5)中提交了一条SQL,期望创建几张表,但是抛出了错误。 其中一张表的建表SQL类似于: create table test( xxxxx, `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', ); 根据MySQL 5.5的特性,datetime还支持不了动态默认值。 所以他们斟酌再三,决定改写为timestamp类型。 我看到另外一张表的建表SQL: create table test2( xxxxx, `create_time` timestamp DEFAULT NULL COMMENT '创建时间', xxxx ); 显然在MySQL 5.5里面,timestamp类型是不支持default null的这种方式的。 在这一点上不存在额外的特性,就是timestamp的一个限制,在5.5,5.7都不支持default null。 哪怕我们改下需求,支持基于timestamp类型的动态默认值,下面的SQL也会抛出问题。 CREATE TABLE `qc_apeal` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT