![](/img/trans.png)
[英]Error Code: 2013. Lost connection to MySQL server during query 30.002 sec
[英]MySQL(Cursors/stored procedures): Error Code: 2013. Lost connection to MySQL server during query 6000.015 sec
平台: MySQL Workbench 8.0 CE SQL: 5.5.57
我在使用存儲過程時遇到了一些麻煩。 當我調用存儲過程時,我不斷收到相同的錯誤 2013 丟失連接。
我嘗試過的事情:
LIMIT 5
if i <= x then leave iterate_personalstamm; end if; set i = i + 1;
if i <= x then leave iterate_personalstamm; end if; set i = i + 1;
SELECT
上使用WHERE
提前感謝您嘗試幫助我。 按照存儲過程:
USE `personaldb`;
DROP procedure IF EXISTS `austritt_telintern`;
USE `personaldb`;
DROP procedure IF EXISTS `personaldb`.`austritt_telintern`;
;
DELIMITER $$
USE `personaldb`$$
CREATE DEFINER=`root`@`hidden` PROCEDURE
`austritt_telintern`()
begin
declare i int default 1;
declare x int default 5;
# cursor for personalDB.personalstamm
declare c_finished int default 0;
declare c_persnr int;
declare c_austritt date;
declare CUR_personalstamm cursor for select persnr, austritt from
personalDB.personalstamm where austritt is not null;
declare continue handler for not found set c_finished = 1;
create index idx_personalstamm_persnr on `personalstamm`(persnr);
create index idx_telefon_persnr on `telefon`(persnr);
open CUR_personalstamm;
iterate_personalstamm: loop
fetch CUR_personalstamm into c_persnr, c_austritt;
if c_finished = 1 then
leave iterate_personalstamm;
end if;
update personalDB.telefon set telefon.gueltig_bis = c_austritt
where telefon.persnr = c_persnr and telefon.gueltig_bis is null;
if i <= x then leave iterate_personalstamm;
end if;
set i = i + 1;
end loop iterate_personalstamm;
close CUR_personalstamm;
end$$
DELIMITER ;
;
實際的選擇/插入代碼看起來很簡單,不應該花費太多時間。
執行以下操作:
SQL:
UPDATE telefon
JOIN personalstamm ON personalstamm.persnr = telefon.persnr
SET telefon.gueltig_bis = personalstamm.austritt
WHERE telefon.gueltig_bis is null
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.