解决MySQL不能有两个CURRENT_TIMESTAMP
MySQL5.5的版本, 在建表的时候如果同时有两个字段是timestamp且都默认值是current_timestamp则会报上面的错误。
下面是尝试过的两种方案,都行不通
Bad case
`insert_time` timestamp DEFAULT now(), `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`insert_time` timestamp NOT NULL, `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
Good case
`insert_time` timestamp NULL DEFAULT NULL,`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`insert_time` timestamp NULL DEFAULT "0000-00-00 00:00:00",`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
结论
1.mysql 5.5 不支持两个timstamp的字段同事设置为 默认的CURRENT_TIMESTAMP
2.解决方案只有加触发器或者绕过
3.绕过的方案也是不能自动同时更新两个字段的内容,要么在插入语句,要么在更新语句里要对一个字段使用now()
参考
https://dbarobin.com/2014/09/01/the-solution-of-created-and-last-updated-timestamp-exist-simultaneously/
以上是 解决MySQL不能有两个CURRENT_TIMESTAMP 的全部内容, 来源链接: utcz.com/z/513610.html