我有一个简单的数据库表,文章数据库的字段很少,其中包含TimeStamp,其中包含对文章进行的最后一次更新的时间。
我使用“ON UPDATE CURRENT_TIMESTAMP”
问题是我只想更新此记录的某些字段,而不是全部。
即。对于每篇文章,我都有一个字段给出了访问者阅读文章的时间。每次网络访问后都不得更新...只有我更改标题,作者等...
理想情况下使用一个很好的mysql命令......
我编写了以下代码:
CREATE TRIGGER `actu_lastupdate_date` BEFORE UPDATE ON `actuality`
FOR EACH ROW BEGIN
if NEW.title <> OLD.title OR NEW.chapeau = OLD.chapeau OR NEW.content = OLD.content
then
SET NEW.LastUpdate_date = current_timestamp;
end if;
END
似乎即使另一个记录字段正在改变,时间戳也会更新。某处应该有一些不好的东西。 我会调查一下
答案 0 :(得分:2)
您可以编写触发器以在更新时添加时间戳
delimiter |
CREATE TRIGGER actu_lastupdate_date AFTER UPDATE on actuality
FOR EACH ROW
BEGIN
if (NEW.title <> OLD.title
OR NEW.chapeau <> OLD.chapeau
OR NEW.content <> OLD.content)
AND (NEW.other_column = OLD.other_column
OR NEW.other_column2 = OLD.other_column2)
then
SET NEW.LastUpdate_date = current_timestamp;
end if;
END
|
delimiter ;