4

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

我的 users 表中有两列(两者都是 type 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 子句中只能有一个带有 CURRENT_TIMESTAMP 的 TIMESTAMP 列

有人可以帮助我正确完成此操作需要做些什么吗?

4

1 回答 1

2

在mysql中仍然不可能。您可以将它们设置为仅在INSERTs、仅在UPDATEs或两者上的实际时间。但是,一张表中不能有多个这些 auto-TIMESTAMP 列。现在可以使用TRIGGERsif usingMysql 5.x

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

MySQL 5.0 的一张表中有两个 auto-TIMESTAMP 列

于 2012-02-20T01:57:13.687 回答