解释特定行的时间戳

4xrmg8kj  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(197)

我想在“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的值无效”

ergxz8rk

ergxz8rk1#

如果 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;

编辑:op在他们的评论中提到 jailtime 仅当属性 pJailed 已更新。要完成这个任务,应该使用这里描述的触发器。

相关问题