我有一个特殊要求,需要自动将'modifieddate'列的datetime值更新为now(),如果:
提供的值为空
提供的值与更新之前的值相同
但是
如果提供的值是任何其他日期字符串,则使用值更新列。
所以,我已经设置了这个触发器,但现在有些东西是正确的:
CREATE TRIGGER `tr_users_updateModDateOnUpdate` BEFORE UPDATE ON `tbl_users`
FOR EACH ROW IF (OLD.date_modified <> NEW.date_modified) THEN
SET NEW.date_modified = IFNULL(NEW.date_modified, NOW());
ELSE
SET NEW.date_modified = NOW();
END IF
我看不出有什么问题,但是我在用我的web应用程序测试时出现了奇怪的行为。。所以试着看看问题是我的触发器,还是我的php代码。。。
有人能告诉我,如果我的触发代码似乎适合我的要求以上?万分感谢!
拍打
1条答案
按热度按时间eivgtgni1#
你的触发器包含一个
IF
声明,所以需要BEGIN/END
阻止。而且,条件似乎不符合你的要求。最后,您需要设置DELIMITER
.我想这正是你想要的: