mysql - 创建 MYSQL 触发器时遇到错误

标签 mysql triggers

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; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 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
$$

关于mysql - 创建 MYSQL 触发器时遇到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33629908/

相关文章:

database - 执行字符串 Postgres

Mysql 是否不同

php - Yii2:从 hasMany 关系中选择最后一条记录

php - 如何在 PHP/MySQL 中将 ","读取为 "<br/>"?

mysql - 什么是 SQL Server UPDATE() 触发器函数的 MySQL 等价物?

sqlite - 使用 SQLite 更新 current_timestamp

postgresql - 在每月的特定日期运行 PostgreSQL 函数

更新中的 MySQL Join 子句

python - 在 python 元组中格式化来自 mysql 的数据

Mysql触发器返回1442错误