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