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 生成的。
谢谢
解决方案
一个简单的语法错误,在前导冒号旁边,必须删除。您第一次出现时使用了不同的引号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
推荐阅读
- java - 在 Spring 中通过 HTTPS 连接 POST 有效负载
- javascript - Promise 如何在 Node.js 和 AWS lambda 函数中工作
- c - 执行直接操作时,输出值与函数内作为参数接收的值不同
- c# - 在 ASP.NET MVC 5 中使用 tinyMCE 获取和设置 html 格式
- ssis - 从 Excel 传输数据的 SSIS 无法检索表信息
- javascript - 在html中添加两个值的结果
- api - 将 API 输出中的 CSV 导入谷歌
- node.js - 在亚马逊 ec2 的 80 端口上服务节点 Webapp
- python-3.x - 如何在 Python 中查找用户给定字符串中的所有特殊字符?
- vb.net - 需要示例 HtmlAgilityPack