You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建MySQL触发器遇1064语法错误,请求协助排查问题

解决MySQL触发器创建的#1064语法错误问题

这个报错的核心原因是MySQL默认的语句分隔符(分号;)和触发器体内的分号冲突了。MySQL会把触发器体里的第一个分号当成整个CREATE TRIGGER语句的结束标记,导致后续语法解析直接失败。

下面是修正后的完整代码:

DELIMITER //
CREATE TRIGGER transactions_insert AFTER INSERT ON transactions
FOR EACH ROW
BEGIN
    UPDATE users 
    SET users.total_money = users.total_money + NEW.Price 
    WHERE users.User_ID = NEW.User_id;
END //
DELIMITER ;

关键修改点说明:

  • 开头用DELIMITER //把语句分隔符临时改成//,这样MySQL就不会把触发器体内的;当成整个语句的结束信号。
  • 触发器定义全部写完后,用//来标记整个CREATE TRIGGER语句的结束。
  • 最后用DELIMITER ;把分隔符改回默认的分号,避免影响后续的SQL语句执行。

另外还有两个需要注意的细节:

  • 要确保transactions表中的Price、User_id字段名,和users表的User_ID字段名,和实际表结构完全一致(如果你的MySQL环境开启了大小写敏感,字段名大小写要严格匹配)。
  • 确保users.User_ID和transactions.User_id的字段类型一致,否则可能出现数据匹配异常。

内容的提问来源于stack exchange,提问作者mslowiak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 10:00:37