謝罪とトリガー内部のロジックIF - うまくいけば、これはよりよい説明:MySQLのNEWとOLD
以下のトリガが、更新後に発射される(設計どおり)が、ときprospectid
どちらも2つのIF
文が発射されていますまたはpropertyid
フィールドが更新されます。
最初の質問は、IF
ロジックに問題がありますか? <>
対<=>
...といくつかの問題があることを思い出しましたか?
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