首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL时间戳字段默认CURRENT_TIMESTAMP不适用于现有行

问MySQL时间戳字段默认CURRENT_TIMESTAMP不适用于现有行
EN

Stack Overflow用户
提问于 2018-04-03 09:54:42
回答 1查看 1.5K关注 0票数 1

在服务器中,我有MySQL版本:

5.1.61

它有一个名为test的表,包含10列和10K行。现在我决定增加一个新的列

在UPDATE CURRENT_TIMESTAMP上的ts时间戳非空默认CURRENT_TIMESTAMP;

增加了新列t。但是问题是对于现有的行,这个新列(Ts)的值是00:000:000,而不是当前时间。

PS:当我添加新行或更新任何现有行时,ts将使用当前时间戳进行更新。

为什么默认的current_timestamp/now()不适用于现有的行?

编辑:我可以运行一个简单的update SQL来将现有行更新到当前时间。但是我在数据库中是新的,我正在尝试,以知道是否有可能用默认值更新现有的行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-03 09:59:05

DEFAULT子句在MySQL表中只关注在向表中添加新记录时会发生什么。数据库管理系统不存在追溯到现有记录并应用某些默认值的遗留行为。在这种情况下,如果您希望现有的记录带有当前的时间戳,则可以进行全面更新:

代码语言:javascript
复制
UPDATE yourTable
SET ts = CURRENT_TIMESTAMP;

在此之后,当您添加新记录而不为ts列指定值时,它将被分配为CURRENT_TIMESTAMP。

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

https://stackoverflow.com/questions/49627141

复制
相关文章

相似问题

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