这是我的代码:
CREATE TRIGGER update_institution AFTER UPDATE ON users
FOR EACH ROW
BEGIN
UPDATE users SET institution = (SELECT name from institutes WHERE id=NEW.institute_id) WHERE id=NEW.id;
END;
当我尝试运行此代码时,我收到如下消息:" 1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第5行"
但实际错误是什么?
答案 0 :(得分:0)
我的猜测是你忘了暂时重新分配你的分隔符。试试这个版本:
DELIMITER //
CREATE TRIGGER update_institution
AFTER UPDATE
ON users FOR EACH ROW
BEGIN
UPDATE users
SET institution =
(SELECT name from institutes WHERE id = NEW.institute_id)
WHERE id = NEW.id;
END; //
DELIMITER ;
通过在触发过程中将分隔符重新分配给//
,您可以继续使用分号而无需MySQL解释您希望语句结束。