如何解决MySQL:错误即将插入过程的插入语句
我是MysqL的新手。我正在尝试将数据从一个表迁移到另一个表。所以我写了一个程序。该过程中有一条插入语句会引发错误。在PHPmyadmin中,它只说错误是连接错误。下面是代码
DELIMITER //
CREATE PROCEDURE transfer_proc()
BEGIN
DECLARE finished INTEGER DEFAULT 0;
DECLARE OLD_ID INT;
DECLARE NEW_ID INT;
DECLARE MYPLAN INT;
DECLARE DAT DATE;
DECLARE DUTY varchar(200) DEFAULT "";
DECLARE DS_DIV INT;
DECLARE VEN varchar(200) DEFAULT "";
DECLARE REM varchar(200) DEFAULT "";
DEClARE CURDAT
CURSOR FOR
select mp.ID,mp.MY_PLAN_ID,mp.DATE,mp.DUTY_PROGRAMME,mp.DS_DIVISION_ID,mp.VENUE,mp.REMARKS
from my_plan_custom_programme mp;
DECLARE CONTINUE HANDLER
FOR NOT FOUND SET finished = 1;
OPEN CURDAT;
CURLOOP: LOOP
FETCH CURDAT INTO OLD_ID,MYPLAN,DAT,DUTY,DS_DIV,VEN,REM;
IF finished = 1 THEN
LEAVE CURLOOP;
END IF;
INSERT INTO my_plan_all_saved_programmes(MY_PLAN_ID,DATE,DUTY_PROGRAMME,DS_DIVISION_ID,VENUE,REMARKS)
VALUES(MYPLAN,REM);
SELECT MAX(ID) INTO NEW_ID FROM my_plan_all_saved_programmes;
INSERT INTO my_plan_all_saved_ds_division(MY_PLAN_CUS_ID,DS_DIV)
SELECT NEW_ID,DS_DIV FROM my_plan_ds_division WHERE MY_PLAN_CUS_ID = OLD_ID;
END LOOP CURLOOP;
CLOSE CURDAT;
END;
//
DELIMITER ;
该错误在循环的最后一个insert语句中出现。如果没有该插入语句,则将创建该过程。但是当它在那里时,会显示连接错误。
INSERT INTO my_plan_all_saved_ds_division(MY_PLAN_CUS_ID,DS_DIV)
SELECT NEW_ID,DS_DIV FROM my_plan_ds_division WHERE MY_PLAN_CUS_ID = OLD_ID;
有人可以告诉该查询有什么问题吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。