duanmeng1950
duanmeng1950
2016-05-31 19:40
浏览 63
已采纳

创建MySQL触发器时​​出错

I'm trying to create this trigger but i'm getting

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '; CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE ON users FOR EACH ROW BEGIN ' at line 1

delimiter $$
DROP TRIGGER IF EXISTS ca_passwd_trigger ;
$$
CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE ON users
FOR EACH ROW
BEGIN
    IF ((NEW.passwd <=> OLD.passwd) = 0) THEN
        SET NEW.passwd_modified_at = NOW();
    END IF;
END;$$
delimiter ;
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • douzhenqun1271
    douzhenqun1271 2016-05-31 19:56
    已采纳

    In your query you added the query terminator ; with the delimiter $$ in two places. The below query is having proper query terminators and delimiters.

    DELIMITER $$
    DROP TRIGGER IF EXISTS ca_passwd_trigger; -- removed the delimiter $$ after the terminator ;
    CREATE TRIGGER ca_passwd_trigger BEFORE UPDATE ON users
    FOR EACH ROW
    BEGIN
        IF ((NEW.passwd <=> OLD.passwd) = 0) THEN
            SET NEW.passwd_modified_at = NOW();
        END IF;
    END$$  -- removed the terminator ; before the delimiter $$
    DELIMITER ;
    
    点赞 评论

相关推荐