我有一张桌子APPLEVARIETY。 它包含以下列:
对于后一列,我想使用'ON UPDATE CURRENT_TIMESTAMP'。但是,如果更新至少一个其他列(id,family,color),这将导致时间戳更新。
相反,我想指定如果仅更新描述列,description_last_update_time将获得CURRENT_TIMESTAMP。它应该忽略其余列的更新。
我查看了MySQL手册,关于stackoverflow的其他问题,当然广泛使用谷歌,但一无所获。
换句话说:是否有某种方式使用ON UPDATE指定某个列?它甚至是可能还是我向错误的方向前进?
答案 0 :(得分:2)
不可能使用ON UPDATE CURRENT_TIMESTAMP
这将在任何列更新时得到更新。
但是,您可以使用触发器实现相同的目的。为此,您首先需要从表定义中删除ON UPDATE CURRENT_TIMESTAMP
。
触发器看起来像
delimiter //
create trigger APPLEVARIETY_update before update on APPLEVARIETY
for each row
begin
if new.description <> old.description then
set new.description_last_update_time = now();
end if;
end;//
delimiter ;