在服务器中,我有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来将现有行更新到当前时间。但是我在数据库中是新的,我正在尝试,以知道是否有可能用默认值更新现有的行。
发布于 2018-04-03 09:59:05
DEFAULT子句在MySQL表中只关注在向表中添加新记录时会发生什么。数据库管理系统不存在追溯到现有记录并应用某些默认值的遗留行为。在这种情况下,如果您希望现有的记录带有当前的时间戳,则可以进行全面更新:
UPDATE yourTable
SET ts = CURRENT_TIMESTAMP;在此之后,当您添加新记录而不为ts列指定值时,它将被分配为CURRENT_TIMESTAMP。
https://stackoverflow.com/questions/49627141
复制相似问题