首页 > 解决方案 > 解释特定行的mysql时间戳

问题描述

我想在“越狱”时间戳行添加。该时间戳将是“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 的值无效”

标签: mysql

解决方案


如果pJailed更新了一行的值,则整行都会收到更新。所以在 . 上使用ON UPDATE CURRENT_TIMESTAMP(and DEFAULT CURRENT_TIMESTAMP)就足够了jailtime

您可以使用以下方法更改列jailtime以反映这一点:

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

编辑: OP 在他们的评论中提到,只有在更新属性jailtime时才应该更新属性pJailed。要完成此操作,应使用此处所述的触发器。


推荐阅读