道歉含糊的标题触发器 - 希望这解释更好:MySQL的IF逻辑中,与新老
下面的触发更新后起火(如设计),但两个IF
语句射击时既不prospectid
或propertyid
字段已更新。
所以第一个问题是,IF
逻辑有什么问题吗?我记得<>
vs <=>
...有一些问题吗?
CREATE TRIGGER myTrig AFTER UPDATE ON t_enquiries
FOR EACH ROW
BEGIN
IF (NEW.prospectid <=> OLD.prospectid) OR (NEW.propertyid <=> OLD.propertyid) THEN
IF (NEW.prospectid IS NOT NULL) AND (NEW.propertyid IS NOT NULL) THEN
INSERT INTO t_prospect_property_link (prospectid, propertyid, remaininginspections) VALUES (NEW.prospectid, NEW.propertyid, 10)
ON DUPLICATE KEY UPDATE subscribed = 1, remaininginspections = 10;
END IF;
END IF;
END
如果我IF
语句都ok,当然这声明,将触发该触发器不是导致prospectid
和propertyid
领域做一些事情,使IF
评估真正???
UPDATE t_enquiries SET recordstatus = 3, enquirystatus = 1 WHERE id = xxx;
的[这是什么操作<=>在MySQL?]可能的复制(http://stackoverflow.com/questions/21927117/what-is-this-operator-in-mysql) – Ravi