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

时间:2012-02-20 01:45:12

标签: mysql sql mysql-error-1293

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

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

  

创建

     

修饰

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

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

我收到以下错误:

  

1293 - 表定义不正确;在DEFAULT或ON UPDATE子句中只能有一个TIMESTAMP列和CURRENT_TIMESTAMP

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

1 个答案:

答案 0 :(得分:2)

这在mysql中是不可能的。您可以仅将其设置为INSERTs上的实际时间,仅设置为UPDATEs或两者。但是,在一个表中不能有多个这样的auto-TIMESTAMP列。如果使用TRIGGERs

,现在可以使用Mysql 5.x

参考这篇文章它会对你有所帮助:

Two auto-TIMESTAMP columns in one table with MySQL 5.0