MySQL触发器:在更新后将数据插入到另一张表中,并带有条件。

3

以下代码是我的触发器,在student_approve表更新后将数据插入到通知表中,但是在第5行出现了错误。

DROP TRIGGER IF EXISTS  `student_approve`;
CREATE TRIGGER `student_approve` AFTER UPDATE ON `student_info` 
FOR EACH ROW 
BEGIN
IF NEW.student_approval LIKE '1' THEN
INSERT INTO `notifications` (user_to_notify,who_fired_event,noti_event_id)VALUES(NEW.registered_by,1,2);
END IF;
END

enter image description here

1个回答

2

LIKE不能在简单比较中使用,它只支持WHERE子句。不要忘记同时更改分隔符。

DROP TRIGGER IF EXISTS  `student_approve`;
DELIMITER //
CREATE TRIGGER `student_approve` AFTER UPDATE ON `student_info` 
FOR EACH ROW 
BEGIN
   IF NEW.student_approval = '1' THEN
     INSERT INTO `notifications` (user_to_notify,who_fired_event,noti_event_id) VALUES(NEW.registered_by,1,2);
   END IF;
END//
DELIMITER ;

虽然我们可以修复语法错误,但我们无法确定结果是否符合您的要求。


仍然出现相同的错误:“您的SQL语法有误;请检查与您的MySQL服务器版本对应的手册,以了解在第5行使用正确的语法。” - Nileshsinh Rathod
这个语法是正确的。你是否忘记设置分隔符了? - e4c5
那么唯一的结论就是你没有发布你的确切代码。 - e4c5
我添加了截图。 - Nileshsinh Rathod
让我们在聊天中继续这个讨论 - Nileshsinh Rathod
显示剩余3条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接