创建MySQL触发器时​​出错

时间:2016-05-31 19:40:32

标签: php mysql

我试图创建此触发器,但我正在

  

[Err] 1064 - 您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   使用附近&#39 ;;在更新用户之前创建TRIGGER ca_passwd_trigger   对于每行开始'在第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 个答案:

答案 0 :(得分:3)

在您的查询中,您在两个位置添加了带有分隔符;的查询终止符$$。以下查询具有正确的查询终止符和分隔符。

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 ;