解释特定行的mysql时间戳

时间:2018-09-19 17:14:17

标签: mysql

我想在“ jailtime”行添加时间戳。该时间戳将是“ pjailed”行被更新的时间戳。

我尝试做休闲运动:

https://dba.stackexchange.com/questions/45470/get-the-time-of-last-update-of-a-column

但是我不想创建表,而是想更改现有表,所以我去了

ALTER TABLE `users` 
CHANGE `jailtime` `jailtime` TIMESTAMP 
ON UPDATE CURRENT_TIMESTAMP NULL 
DEFAULT 'updated_at pJailed';

但是它给我错误“ pJailed的值无效”

1 个答案:

答案 0 :(得分:0)

如果某行的pJailed的值被更新,则整行将收到更新。因此,在ON UPDATE CURRENT_TIMESTAMP上使用DEFAULT CURRENT_TIMESTAMP(和jailtime)就足够了。

您可以使用以下方法更改列jailtime以反映此情况:

ALTER TABLE your_table
 MODIFY COLUMN jailtime TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;

编辑their comment中提到的OP jailtime仅应在属性pJailed更新时更新。为此,应使用here中所述的触发器。