mysql – 如何让SQL正确更新我的记录修改时间戳?

我正在尝试设置一个sql表来记录创建帐户的时间以及上次修改帐户的时间.我想sql来处理这个,所以我不必在我的
PHP文件中这样做.

我的users表中有两列(都是timestamp类型):

created

modified

我希望“创建”时间永远不会改变并始终包含创建日期,并且每次修改用户行时都要更改“已修改”.我有表设置所以“创建”按预期工作,但当我尝试更新修改时:

ALTER TABLE `users` 
   CHANGE `modified` `modified` TIMESTAMP NOT NULL 
   DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP

我收到以下错误:

1293 – Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

有人可以帮助我完成正确的操作吗?

最佳答案 它在mysql中是不可能的.您可以将它们设置为仅在INSERT上的实际时间,仅在UPDATE或两者上.但是,在一个表中不能有多个这样的auto-TIMESTAMP列.如果使用Mysql 5.x,现在可以使用TRIGGER

参考这篇文章它会帮助你很多:

Two auto-TIMESTAMP columns in one table with MySQL 5.0

点赞