我有一个简单的数据库表,其中有几个用于文章数据库的字段,其中一个时间戳包含文章上次更新的时间。
我使用“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
看来即使另一个记录字段发生变化,时间戳也会更新。应该是有什么不好的地方。 我会调查一下
最佳答案
您可以编写一个触发器来添加更新时间戳
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 ;
关于mysql:当字段更新时如何自动更新时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13566115/