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

MySQL存储过程创建遇Error Code 1064语法错误,请求排查帮助

解决MySQL存储过程创建的1064语法错误

我帮你定位到了导致语法错误的几个问题,下面是修正后的完整可执行代码,以及详细的错误原因说明:

DELIMITER //
CREATE PROCEDURE forum.eventlog_create(
    i_UserID INT,
    i_Source VARCHAR(128),
    i_Description TEXT,
    i_Type INT,
    i_UTCTIMESTAMP DATETIME
)
MODIFIES SQL DATA
BEGIN
    INSERT INTO forum.EventLog (UserID, Source, Description, `Type`)
    VALUES (i_UserID, i_Source, i_Description, i_Type);
END //
DELIMITER ;

错误原因解析:

  • 无效的列名包裹符号:你在列名Type周围使用了´(全角重音符/中文单引号),MySQL无法识别这种符号,必须使用英文反引号`来转义保留字或特殊列名。Type属于MySQL保留字,所以必须用反引号包裹才能正常解析。
  • 未修改语句分隔符:MySQL默认用分号;作为语句结束标记,但存储过程内部包含分号,会导致MySQL提前终止存储过程的解析,直接抛出语法错误。因此需要先通过DELIMITER //临时修改分隔符,创建完成后再改回默认的;。
  • 冗余参数(非语法错误):你定义了i_UTCTIMESTAMP参数,但存储过程内部并未使用它,如果不需要这个参数可以直接删除,让代码更简洁。

按照上面的修正代码执行,就能成功创建这个存储过程了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:01:01