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



我正在尝试设置一个sql表,该表记录创建帐户的时间和上次修改帐户的时间。我希望sql能够处理这个问题,这样我就不必在php文件中这样做了。

我的用户表中有两列(均为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

有人能帮助我做些什么来正确地完成这项任务吗?

这在mysql中仍然是不可能的。只能在INSERTsUPDATEs或两者上将它们设置为实际时间。但是,在一个表中不能有多个这样的自动TIMESTAMP列。如果使用Mysql 5.x ,那么现在使用TRIGGERs是可能的

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

MySQL 5.0 的一个表中有两个自动TIMESTAMP列

最新更新