mysql触发信号错误而不告诉我实际的错误

时间:2018-03-20 11:07:37

标签: mysql triggers

这是我的代码:

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行"

但实际错误是什么?

1 个答案:

答案 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解释您希望语句结束。