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

在Adminer中创建MySQL存储过程时出现语法错误求助

解决Adminer创建MySQL存储过程的语法错误问题

这问题我之前踩过一模一样的坑!Adminer和MySQL CLI在处理存储过程定义时,核心差异就在语句分隔符上——这几乎肯定是你遇到的问题。

为什么CLI能成功,Adminer却报错?

MySQL默认用;作为语句结束符,但存储过程内部的SQL语句也会用到;。在CLI里,你大概率是先执行了DELIMITER //(或其他符号)临时修改了分隔符,让MySQL知道只有遇到//才结束整个存储过程的定义;但Adminer默认没做这个设置,它会把存储过程里第一个;当成整个语句的结尾,自然就抛出语法错误了。

具体解决步骤

方法1:通过Adminer界面修改分隔符(推荐)

  1. 打开Adminer,进入你要创建存储过程的数据库。
  2. 找到SQL输入区域的分隔符设置(通常在输入框右下角,默认显示;),把它改成//或$$这类不会和存储过程内部冲突的符号。
  3. 在SQL输入框中写入存储过程代码,注意用你设置的新分隔符结尾:
CREATE PROCEDURE test()
BEGIN
    SELECT * FROM lead;
END //
  1. 点击执行按钮,成功创建后,记得把分隔符改回;,之后就可以正常调用CALL test();了。

方法2:用SQL语句修改分隔符(部分Adminer版本支持)

如果你的Adminer版本支持通过SQL语句修改分隔符,可以直接执行这段代码:

DELIMITER //
CREATE PROCEDURE test()
BEGIN
    SELECT * FROM lead;
END //
DELIMITER ;

执行后同样可以成功创建存储过程。

额外验证

创建完成后,在Adminer的左侧菜单找到“存储过程”选项,查看是否存在test;或者直接执行CALL test();,如果能正常返回lead表的所有数据,就说明问题解决了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:25:22