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

MySQL如何创建生成数字区间的存储过程及解决DELIMITER语法报错

解决方案

报错的核心原因是代码最后一行重置分隔符的语句语法错误:DELIMITER 关键字和要设置的目标分隔符;之间缺少空格,MySQL无法识别DELIMITER;这个指令。

修正后的完整代码
CREATE TABLE Numbers (n INT);

DELIMITER //
CREATE PROCEDURE GenerateNumbers(IN L INT, IN H INT)
BEGIN
    -- 如果入参L可能为负数,建议去掉UNSIGNED避免整数范围不匹配报错
    DECLARE I INT DEFAULT L;
    WHILE I <= H DO
        INSERT INTO Numbers(n) VALUES(I);
        SET I = I + 1;
    END WHILE;
END //
DELIMITER ;
补充说明
  • 执行存储过程的方法:调用CALL GenerateNumbers(起始值, 结束值);即可生成对应区间的数字存入Numbers表,例如CALL GenerateNumbers(1,100);会生成1到100的整数
  • 如果需要重复调用存储过程,建议在存储过程的WHILE循环前添加TRUNCATE TABLE Numbers;语句,避免旧数据重复残留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 12:30:04