MYSQL8.0中timestamp无法自动生成时间
在本地测试接口进行新增插入时遇到创建时间和更新时间(timestamp)没有自动创建,并报错Colunm 'create_time' cannot be null.
DDL语句:
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
原因:在mysql5.7之中explicit_defaults_for_timestamp默认值是off,在mysql8.0之中默认值改为了on
解决:
--查看mysql版本
SELECT VERSION()
-- 查看explicit_defaults_for_timestamp默认值
SHOW GLOBAL VARIABLES LIKE "explicit_defaults_for_timestamp";
-- 修改explicit_defaults_for_timestamp默认值
SET @@global.explicit_defaults_for_timestamp=OFF;
完毕。