mysql workbench无效语法

iyfjxgzm  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(500)

我只是个简单的触发器,

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版本,这个版本支持触发器,所以我很迷茫。这是触发器如何在顶部声明的问题吗?我不习惯语法“createdefiner”,我认为这可能是问题所在,但是当您尝试创建一个新触发器时,mysql workbench会生成这个语法。
谢谢

hrirmatl

hrirmatl1#

一个简单的语法错误,在前面的冒号旁边,必须删除。你的第一句话用了不同的引号 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

相关问题