更新数据更新时的时间戳,但不更新更新后到达计数的时间戳

时间:2015-08-28 17:43:05

标签: php mysql

我正在研究PHP,我是这方面的新人。
我在数据库中有一个表,其中出现以下行:
IDTitleStoryPostReachDatenTime
其中ID是主要的DatenTime是TimeStamp和on_update_current_timetemp
当我更新行中的数据时,时间戳正在更新,那没关系!
但是,当访问者访问帖子且PostReach更新时,timwstamp也会更新,如何阻止此时间戳更新PostReach值。

1 个答案:

答案 0 :(得分:1)

使用Before update触发器进行此操作。通过相似的触发器手动更新时间戳。禁用DatenTime的自动设置。我们的想法是,只有在标题或故事被更改或设置为/为NULL时才会设置DatenTime。您可以添加其他字段(如果已更改)将导致DatenTime设置为CURRENT_TIMESTAMP。插入新记录时,需要考虑设置DatenTime

BEGIN
IF ((OLD.title!=NEW.title)OR(OLD.story!=NEW.story)
OR
(ISNULL(NEW.title)XOR(ISNULL(OLD.title)))
OR
(ISNULL(NEW.story)XOR(ISNULL(OLD.story)))

THEN
SET NEW.DatenTime = CURRENT_TIMESTAMP();
END IF;
END