我正在创建一些表,希望在其中存储创建记录的时间和上次更新记录的时间。我想我可以有两个时间戳字段,其中一个字段的值是CURRENT_TIMESTAMP,另一个字段的值是CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。但是我想我不能这样做,因为在一个表中只能有一个带有默认值的时间戳字段?
你建议我如何获取和存储这两个时间?谢谢!
发布于 2014-02-22 11:23:59
创建像“created”和“updated”这样的字段的好方法是
CREATE TABLE `mytable` (
`id` INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY,
`created` TIMESTAMP DEFAULT '0000-00-00 00:00:00',
`updated` TIMESTAMP DEFAULT now() ON UPDATE now(),
`myfield` VARCHAR(255)
); 在“insert”过程中,需要在两列中都输入空值:
INSERT INTO mytable (created,updated,myfield) VALUES (null,null,'blablabla');现在,在所有更新中,“已更新”字段将有一个带有实际日期的新值。
UPDATE mytable SET myfield='blablablablu' WHERE myfield='blablabla';来源:http://gusiev.com/2009/04/update-and-create-timestamps-with-mysql
发布于 2015-06-06 03:51:08
从MYSQL版本5.6.5开始,您可以使用DEFAULT和ON UPDATE完成此操作。不需要触发器。
ts_create时间戳默认CURRENT_TIMESTAMP,
更新CURRENT_TIMESTAMP时的ts_update时间戳默认CURRENT_TIMESTAMP
发布于 2010-08-16 02:02:26
据我所知,没有解决这个限制的办法。您需要手动设置(至少)其中一个时间戳,最简单的方法是将updated = NOW()添加到UPDATE-query中。
https://stackoverflow.com/questions/3488536
复制相似问题