首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySQL创建时间和更新时间时间戳

MySQL创建时间和更新时间时间戳
EN

Stack Overflow用户
提问于 2010-08-16 01:57:34
回答 5查看 52.2K关注 0票数 15

我正在创建一些表,希望在其中存储创建记录的时间和上次更新记录的时间。我想我可以有两个时间戳字段,其中一个字段的值是CURRENT_TIMESTAMP,另一个字段的值是CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。但是我想我不能这样做,因为在一个表中只能有一个带有默认值的时间戳字段?

你建议我如何获取和存储这两个时间?谢谢!

EN

回答 5

Stack Overflow用户

发布于 2014-02-22 11:23:59

创建像“created”和“updated”这样的字段的好方法是

代码语言:javascript
复制
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”过程中,需要在两列中都输入空值:

代码语言:javascript
复制
INSERT INTO mytable (created,updated,myfield) VALUES (null,null,'blablabla');

现在,在所有更新中,“已更新”字段将有一个带有实际日期的新值。

代码语言:javascript
复制
UPDATE mytable SET myfield='blablablablu' WHERE myfield='blablabla';

来源:http://gusiev.com/2009/04/update-and-create-timestamps-with-mysql

票数 29
EN

Stack Overflow用户

发布于 2015-06-06 03:51:08

从MYSQL版本5.6.5开始,您可以使用DEFAULT和ON UPDATE完成此操作。不需要触发器。

ts_create时间戳默认CURRENT_TIMESTAMP,

更新CURRENT_TIMESTAMP时的ts_update时间戳默认CURRENT_TIMESTAMP

票数 25
EN

Stack Overflow用户

发布于 2010-08-16 02:02:26

据我所知,没有解决这个限制的办法。您需要手动设置(至少)其中一个时间戳,最简单的方法是将updated = NOW()添加到UPDATE-query中。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3488536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档