我正在尝试设置一个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中仍然是不可能的。只能在INSERTs
、UPDATEs
或两者上将它们设置为实际时间。但是,在一个表中不能有多个这样的自动TIMESTAMP列。如果使用Mysql 5.x
,那么现在使用TRIGGERs
是可能的
参考这篇文章它将帮助你很多:
MySQL 5.0 的一个表中有两个自动TIMESTAMP列