我想写多个if条件来检查触发器中同一个表的不同列的值。我正在检查这两列,我收到了mysql错误
#1064(syntax error) at Line # 17.
以下是我的条件。 PLZ帮助我做错了什么。
IF (OLD.CE_EN_OPTION_ID != NEW.CE_EN_OPTION_ID)
THEN
INSERT INTO audit_log(
BENEFICIARY_ID ,
TABLE_NAME ,
FIELD_NAME ,
OLD_VALUE ,
NEW_VALUE ,
EDIT_BY,
DATE_TIME
)
VALUES (
OLD.BENEFICIARY_ID, 'be_ce_main', 'CE_EN_OPTION_ID', OLD.CE_EN_OPTION_ID, NEW.CE_EN_OPTION_ID, NEW.EDITED_ID,NOW()
);
END IF;
IF(OLD.CE_DM_OPTION_ID != NEW.CE_DM_OPTION_ID)
THEN
INSERT INTO audit_log(
BENEFICIARY_ID ,
TABLE_NAME ,
FIELD_NAME ,
OLD_VALUE ,
NEW_VALUE ,
EDIT_BY,
DATE_TIME
)
VALUES (
OLD.BENEFICIARY_ID, 'be_ce_main', 'CE_DM_OPTION_ID', OLD.CE_DM_OPTION_ID, NEW.CE_DM_OPTION_ID, NEW.EDITED_ID,NOW()
);
END IF;
答案 0 :(得分:0)
您缺少BEGIN
- END
阻止。
我担心你没有覆盖delimiter
来指示sql引擎不执行以default语句终止符;
分号结尾的语句。因为你没有定义新的分隔符,所以sql引擎假设它是在第一次找到;
分号时的语句结束。它失败了,因为语句的语法顺序不正确。
尝试以下方法:
Delimiter //
CREATE TRIGGER 'test_trigger' AFTER UPDATE ON 'be_ce_main' FOR EACH ROW
BEGIN -- this is a must if you have more than one executable statements below
-- your trigger body here
END;
//
Delimiter ;
请参阅: