【问题标题】:MySQL trigger syntax error near CREATE TRIGGERCREATE TRIGGER 附近的 MySQL 触发器语法错误
【发布时间】:2014-04-29 18:39:30
【问题描述】:

我正在尝试在 Mysql 中创建触发器,并得到错误:

check the manual that corresponds to your MySQL server version for the right syntax to  use near 'CREATE TRIGGER `foo`.`test` AFTER INSERT ON `foo`.`test` FOR EACH ROW BE' at line 2

在这个触发器中:

DELIMITER $$
SET @name2:='w';
CREATE TRIGGER `foo`.`test`
AFTER INSERT
    ON `foo`.`test`
    FOR EACH ROW BEGIN
    SELECT name1 INTO name2;
    END;
    $$
DELIMITER ;

第 2 行有什么问题?

【问题讨论】:

  • 使用DELIMITER $$ 可以更改分隔符,然后必须使用$$ 来结束每个语句。但是您在下一行使用;。而且在触发器之外设置一个变量是没有意义的。
  • 删除;没有更好 - 同样的错误
  • 不要删除它。将其替换为$$。但是,正如我已经说过的,下一行无论如何都没有意义。我猜你不明白什么是触发器。首先阅读它。您可能想要一个 存储过程

标签: mysql sql triggers delimiter


【解决方案1】:

试试这个:

  DELIMITER $$

 CREATE TRIGGER `foo`.`test` AFTER INSERT
ON `foo`.`test`
FOR EACH ROW BEGIN
SET @name2:='w';
SELECT name1 INTO @name2;
END$$
DELIMITER ;

【讨论】:

  • 未声明的变量:name2
猜你喜欢
  • 2013-11-15
  • 2013-12-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多