MYSQL8.0中timestamp无法自动生成时间
目前线上mysql是5.7没有类似问题出现,之前做了一个测试库,使用的mysql5.8,在本地测试接口进行新增插入时遇到创建时间和更新时间(timestamp)没有自动创建,并null空指针报错
原因:在mysql5.7之中explicit_defaults_for_timestamp默认值是off,在mysql8.0之中默认值改为了on
解决:可换用datetime 或者如下
-- 查看explicit_defaults_for_timestamp默认值
SHOW GLOBAL VARIABLES LIKE "explicit_defaults_for_timestamp";
-- 修改explicit_defaults_for_timestamp默认值
SET @@global.explicit_defaults_for_timestamp=OFF;
注意:因为这个问题之前有出现过,做过设置,问题再次出现,做此记录(出现原因:本地服务重启后,设置又恢复了默认状态)