MySQL时间戳字段默认当前\u时间戳不适用于现有行

MySQL时间戳字段默认当前\u时间戳不适用于现有行,mysql,timestamp,Mysql,Timestamp,在服务器中,我有MySQL版本: 5.1.61 它有一个名为test的表,有10列和10K行。 现在我决定添加一个新专栏 ts TIMESTAMP NOT NULL更新当前\u时间戳时的默认当前\u时间戳 添加了新的列ts。但问题是,对于现有行,此新列(ts)的值是00:000:000,而不是当前时间 PS:当我添加新行或更新任何现有行时,ts将使用当前时间戳进行更新 为什么默认的当前_timestamp/now()不适用于现有行 编辑: 我可以运行一个简单的更新SQL将现有行更新到当前时间。但

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

5.1.61

它有一个名为test的表,有10列和10K行。 现在我决定添加一个新专栏

ts TIMESTAMP NOT NULL更新当前\u时间戳时的默认当前\u时间戳

添加了新的列ts。但问题是,对于现有行,此新列(ts)的值是00:000:000,而不是当前时间

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

为什么默认的当前_timestamp/now()不适用于现有行

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

MySQL表中的
default
子句只关心在向表中添加新记录时发生的情况。在DBMS返回到已有记录并应用一些默认值的情况下,没有遗留行为。在这种情况下,如果希望现有记录具有当前时间戳,则可以执行一揽子更新:

UPDATE yourTable
SET ts = CURRENT_TIMESTAMP;

在这一点之后,当您添加新记录并且没有为
ts
列指定值时,它将被分配
CURRENT\u TIMESTAMP

,他询问在添加新记录时,为什么当前\u TIMESTAMP不适用于现有行column@Ajay嗯…我的回答解释了发生了什么以及为什么会发生。你费心看了吗?哦,我的错误,我道歉……)@TimBiegeleisen谢谢你的回答。我真的想知道这是否可能。我以为我犯了错误。