mysql - 带有 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 错误消息没有帮助。我究竟做错了什么?
解决方案
语法错误可能是由于 UPDATE 和 INSERT 方法的混合造成的:
UPDATE TABLE
SET COLUM1 = VALUE1,
COLUM2 = VALUE2;
INSERT INTO TABLE
(COLUM1, COLUM2)
VALUES (VALUE1, VALUE2);
推荐阅读
- arrays - 需要帮助使用 .join() 将数组转换为字符串列表
- regex - 确认/匹配帐号。这是我验证帐号的正则表达式 ^[0-9]{7,12}$ 但我不知道如何确认
- ios - 如何在带有应用剪辑 url 前缀的主应用中触发 SceneDelegate 方法场景:继续:
- amazon-web-services - 从 elb 访问私有子网中的 ASG 时出现问题
- javascript - 你能把这个逻辑转换成其他形式吗?如果-那么
- git - VS2019 版本 16.8.2 中的新 Git 体验:我可以在将 git 分支与当前分支合并之前对其进行比较吗?
- javascript - HTML 输出中对象的属性值未更新
- php - 如何在 php 页面中插入块代码?
- outlook - 使用 Redemption 编写消息头
- c++ - 在一行上打印小数点后 4 位的数字