mysql - 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,DAT,DUTY,DS_DIV,VEN,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 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;
有人可以告诉那个查询有什么问题吗?
解决方案
推荐阅读
- android-studio - 在 android studio 中为 google admob 添加测试设备时出错
- docker - 在 Azure Functions PowerShell 运行时本地 Docker 映像中使用 HTTPS
- r - REST API POST 和安全性
- c++ - C ++ constexpr 布尔值与宏
- python - 查找在 chromium 上打开的活动或当前选项卡的 URL,或查看是否打开了特定选项卡
- c - libfuse 中的 hello_ll.c 是否已过时?
- reactjs - React Router - 渲染函数 - React 测试库
- python - windows10如何安装hlsdl
- linux - 在没有 SDK 但有运行时的情况下运行 .net 核心
- git - 将 tfs 分支迁移到 Azure 中的 git repo