0

我想在 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 服务器版本相对应的手册,以在第 2 行的 'trigger FOR EACH ROW BEGIN INSERT INTO users SET username='kr' 附近使用正确的语法

这是错误指向的代码:

BEFORE UPDATE ON trigger
                 ^^^^^^^
4

2 回答 2

0

正确的语法insert是:

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

您的语法接近更新:

update users
SET username= 'krishna',
    password= 'abc';
于 2013-05-31T07:31:02.813 回答
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

于 2013-05-31T08:29:40.060 回答