首页 > 解决方案 > 带有 IF 语句的 MySQL 触发器

问题描述

我正在尝试创建我的第一个 MYSQL 触发器,当插入 role_id 为 4 的已插入记录时,我希望它使用相同的值插入另一条记录,但 role_id 为 5。

我最大的努力是:

CREATE TRIGGER auto_insert_member
AFTER INSERT ON staff_role
FOR EACH ROW
BEGIN
    IF (NEW.role_id = 4) THEN 
        INSERT INTO staff_role
        SET 
          start_date = NEW.start_date,
          end_date = NEW.end_date,
          person_id = NEW.person_id,
          role_id = 5
    END IF
END

我无法使其工作,并且 phpMyAdmin 错误消息没有帮助。我究竟做错了什么?

标签: mysqlsql

解决方案


语法错误可能是由于 UPDATE 和 INSERT 方法的混合造成的:

UPDATE TABLE
   SET COLUM1 = VALUE1,
       COLUM2 = VALUE2;

INSERT INTO TABLE 
       (COLUM1, COLUM2) 
VALUES (VALUE1, VALUE2);

推荐阅读