木槿74138 2023-04-19 15:06 采纳率: 88.9%
浏览 26
已结题

navicat运行循环插入数据一直报错

drop procedure if EXISTS proc_insert_J;
DELIMITER $$
CREATE PROCEDURE proe_insert_J(in args int)
BEGIN
    DECLARE i INT DEFAULT 0:
        start transaction;
        REPEAT
            set i=i+1;
            insert into j(jno,jname,city) values (CONCAT('j',i),CONCAT('项目',i),'济南');
        UNTIL i>=args
        END REPEAT:
    commit;
END
$$
DELIMITER;

call proc_insert_J(100000);

错误

drop procedure if EXISTS proc_insert_J
> OK
> 时间: 0.001s


CREATE PROCEDURE proe_insert_J(in args int)
BEGIN
    DECLARE i INT DEFAULT 0:
        start transaction;
        REPEAT
            set i=i+1;
            insert into j(jno,jname,city) values (CONCAT('j',i),CONCAT('项目',i),'济南');
        UNTIL i>=args
        END REPEAT:
    commit;
END
> 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ':
        start transaction;
        REPEAT
            set i=i+1;
            insert into j(jno,jname,cit' at line 3
> 时间: 0s

我想知道错误出在哪里,望告知

  • 写回答

3条回答 默认 最新

  • 嗝屁小孩纸 2023-04-19 15:23
    关注

    你声明变量i符号应该用分号、开启事务也是用分号,下面是代码

    DROP PROCEDURE IF EXISTS proc_insert_J;
    CREATE PROCEDURE proc_insert_J(in args int)
    BEGIN
        DECLARE i INT DEFAULT 0;
        START TRANSACTION;
        REPEAT
            SET i=i+1;
            INSERT INTO j(jno,jname,city) VALUES (CONCAT('j',i),CONCAT('项目',i),'济南');
        UNTIL i>=args
        END REPEAT;
        COMMIT;
    END;
    

    有问题及时反馈哦

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月26日
  • 已采纳回答 5月18日
  • 创建了问题 4月19日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表