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

MySQL执行CREATE PROCEDURE无响应:无报错无输出问题排查

问题解决:MySQL存储过程创建无响应的原因与修复

你的代码里有两个关键语法错误,导致存储过程创建时无响应或失败:

1. 存储过程定义结束未添加临时分隔符

你设置了DELIMITER |作为临时分隔符,但存储过程的END语句后没有跟上这个分隔符,MySQL无法判断存储过程定义已经结束,会一直等待输入,表现为加载后无任何输出。

2. INSERT语句语法错误

INSERT INTO odd(num) VALUES x;不符合MySQL语法,单值插入时必须将值放在括号内,正确写法是VALUES (x)。

修正后的完整代码

CREATE TABLE odd(num INT PRIMARY KEY);

DELIMITER |
CREATE PROCEDURE insertOdd() BEGIN
    DECLARE x INT;
    SET x = 0; 
    loop_label: LOOP
        SET x = (2 * x) + 1;
        IF x > 20 THEN
            LEAVE loop_label;
        END IF;
        IF x = 5 THEN
            ITERATE loop_label;
        END IF;
        IF x = 15 THEN
            ITERATE loop_label;
        END IF;
            INSERT INTO odd(num) VALUES (x);
            ITERATE loop_label;
    END LOOP loop_label; 
END |
DELIMITER ;

执行修正后的代码后,就能正常创建存储过程,调用CALL insertOdd();即可向odd表插入预期的奇数(排除5和15)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:47:13