如何让mysql在每次修改行操作时自动将列更新为当前时间戳?

时间:2012-10-23 06:22:22

标签: java mysql

我的mysql表中有两列:created_on和modified_on。我已将created_on列的默认值设置为CURRENT_TIMESTAMP。因此,在表中的每个插入操作中,created_on列正确地将值设置为当前时间戳。但是我希望当我更新同一行时,'modified_on'列将值更新为更新时的时间戳。让我知道如果我使用任何函数/触发器来执行此操作,或者是否有任何内置的mysql功能用于相同的

2 个答案:

答案 0 :(得分:4)

尝试使用ON UPDATE关键字更改您的表格,如:

ALTER TABLE `tableName` 
CHANGE `modified_on` `modified_on` TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP;

或者您可以在插入时添加默认值,如:

ALTER TABLE `tableName` 
CHANGE `modified_on` `modified_on` TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP
NOT NULL DEFAULT CURRENT_TIMESTAMP ;

创建表时,您还可以将ON UPDATE定义为时间戳数据类型。

答案 1 :(得分:1)

写一个触发器来执行此操作