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

MySQL #1064错误:所有存储过程/函数均触发该错误求助

解决MySQL存储过程#1064语法错误的方案

我一眼就揪出了你代码里的问题——这是写MySQL存储过程时超容易踩的DELIMITER语法坑!你的#1064错误根源就在最后恢复分隔符的语句上。

错误分析

MySQL的DELIMITER命令要求关键字和目标分隔符之间必须留空格,你写的DELIMITER;会被MySQL判定为无效命令,直接触发语法错误。另外,紧凑到挤在一起的代码格式,也会给后续排查问题添乱。

修正后的代码

DELIMITER |
DROP PROCEDURE IF EXISTS STUDENTS_BY_STATUS;
CREATE PROCEDURE STUDENTS_BY_STATUS (sts VARCHAR(10))
BEGIN
    SELECT BannerId, Name FROM STUDENT WHERE Status = sts;
END |
DELIMITER ;

关键注意事项

  • DELIMITER的正确写法:不管是设置自定义分隔符还是恢复默认的分号,DELIMITER和后面的符号之间必须有空格,这是MySQL解析器的硬性要求。
  • 代码可读性优化:把DROP、CREATE、BEGIN/END块分别换行,逻辑会清晰很多,后续再排查其他语法问题也更轻松。
  • 保留字规避:Status属于MySQL的保留字范畴,建议用反引号包裹成`Status`,避免后续出现潜在的语法冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:34:13