MySQL Workbench语法无效

时间:2018-10-29 17:53:06

标签: mysql mysql-workbench

我是一个相当简单的触发器,

CREATE DEFINER = CURRENT_USER TRIGGER 'nfl`.`games_AFTER_INSERT` AFTER 
INSERT ON `games` FOR EACH ROW
BEGIN
 UPDATE nfl.teams t
 SET t.passingyards = t.passingyards +:new.homepassingyards,
     t.rushingyards = t.rushingyards +:new.homerushingyards
 WHERE t.teamname =:new.hometeamname;
END

但是我不断收到奇怪的语法错误:

"+" is not valid at this position for this server version, expecting '-', '*', '/', '%', '<<','>>',...

我正在运行MySQL 8.0.11版和InnoDB的默认存储引擎。我搜索了MySQL版本,并且该版本支持触发器,因此在这里我很迷路。这是如何在顶部声明触发器的问题吗?我不习惯使用语法“ CREATE DEFINER”,并认为这可能是问题所在,但这是当您尝试创建新触发器时MySQL Workbench生成的问题。

谢谢

1 个答案:

答案 0 :(得分:0)

除了前导冒号外,还必须删除一个简单的语法错误。您第一次出现nfl时使用了不同的引号。这是正确的格式:

CREATE DEFINER = CURRENT_USER TRIGGER `nfl`.`games_AFTER_INSERT` AFTER INSERT ON `games` FOR EACH ROW
BEGIN
 UPDATE nfl.teams t
 SET t.passingyards = t.passingyards + new.homepassingyards,
     t.rushingyards = t.rushingyards + new.homerushingyards
 WHERE t.teamname = new.hometeamname;
END