我的触发器在MySQL中不起作用

时间:2013-05-31 07:28:02

标签: mysql triggers

我想在MySQL中创建一个触发器,但是当我运行创建代码时它会显示一条错误消息:

CREATE TRIGGER before_employee_update 
    BEFORE UPDATE ON trigger
    FOR EACH ROW BEGIN

    update users
    SET username= 'krishna',
        password= 'abc';
END

错误是:

  

1064 - 您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   '触发FOR EACH ROW BEGIN INSERT INTO用户SET username ='kr'   在第2行

这是错误指向的代码:

BEFORE UPDATE ON trigger
                 ^^^^^^^

2 个答案:

答案 0 :(得分:0)

insert的正确语法是:

insert into users(username, password)
    select 'krishna', 'abc';

您的语法接近更新:

update users
SET username= 'krishna',
    password= 'abc';

答案 1 :(得分:0)

TRIGGER是MySQL中的保留字,你应该引用这个名字 -

CREATE TRIGGER before_employee_update
  BEFORE UPDATE
  ON `trigger`
  FOR EACH ROW
BEGIN
  UPDATE users SET username = 'krishna', password = 'abc';
END

作为解决方法 - 重命名表trigger