我正在尝试设置一个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
有人可以帮助我完成正确的工作吗?
答案 0 :(得分:2)
这在mysql中是不可能的。您可以仅将其设置为INSERTs
上的实际时间,仅设置为UPDATEs
或两者。但是,在一个表中不能有多个这样的auto-TIMESTAMP列。如果使用TRIGGERs
Mysql 5.x
参考这篇文章它会对你有所帮助: