解决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

回到顶部