问题描述
我是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 (将#修改为@)