简体   繁体   English

创建MYSQL触发器时​​遇到错误

[英]Facing Error while creating a MYSQL trigger

DELIMITER $$
DROP TRIGGER IF EXISTS TRIGGER_BEFORE_USERS_MAUALEXPIRY_USEREXPIRAY_UPDATE $$


CREATE TRIGGER TRIGGER_BEFORE_USERS_MAUALEXPIRY_USEREXPIRAY_UPDATE 


    BEFORE UPDATE ON USERS
    FOR EACH ROW 
    BEGIN
    IF @DISABLE_TRIGGERS IS NULL THEN
        IF  NOT (NEW.MANUALEXPIRATIONDATE <=> OLD.MANUALEXPIRATIONDATE) THEN

            SET NEW.CUSTOMFIELD2 = NEW.MANUALEXPIRATIONDATE;
        IF  NOT(NEW.USEREXPIRYDATE <=> OLD.USEREXPIRYDATE)  THEN

            SET NEW.CUSTOMFIELD3 = NEW.USEREXPIRYDATE;
        END IF;
        END IF;         

    END$$

DELIMITER ;

Error Code: 1064. You have an error in your SQL syntax; 错误代码:1064。 check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 17 检查与您的MySQL服务器版本相对应的手册,以在第17行的''附近使用正确的语法

CREATE TRIGGER TRIGGER_BEFORE_USERS_MAUALEXPIRY_USEREXPIRAY_UPDATE     

    BEFORE UPDATE ON USERS
    FOR EACH ROW 
    BEGIN
    IF @DISABLE_TRIGGERS IS NULL THEN
        IF  NOT (NEW.MANUALEXPIRATIONDATE <=> OLD.MANUALEXPIRATIONDATE) THEN    
            SET NEW.CUSTOMFIELD2 = NEW.MANUALEXPIRATIONDATE;
        END IF;
        IF  NOT(NEW.USEREXPIRYDATE <=> OLD.USEREXPIRYDATE)  THEN    
            SET NEW.CUSTOMFIELD3 = NEW.USEREXPIRYDATE;
        END IF;    
    END IF;
END
$$

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM