gpt4 book ai didi

MySql 存储过程循环游标 - 语法错误

转载 作者:行者123 更新时间:2023-11-29 04:22:48 25 4
gpt4 key购买 nike

语法错误在哪里?

DECLARE irid INT DEFAULT 0;
DECLARE tmp_joinid INT DEFAULT 0;
DECLARE loopjoins_eof INT DEFAULT FALSE;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET loopjoins_eof = TRUE;
START TRANSACTION;

SET irid = (SELECT id FROM `tables` WHERE `adapter_id`=_aid AND `view_id`=_vid AND `name`=_tname);
IF irid IS NOT NULL THEN

DECLARE cur0 CURSOR FOR SELECT `joins`.`id` FROM `joins` WHERE `table_left_id`=irid OR `table_right_id`=irid;
OPEN cur0;
loopjoins: LOOP
FETCH cur0 INTO tmp_joinid;
IF loopjoins_eof THEN
LEAVE loopjoins;
END IF;
-- Lösche Join-Columns
DELETE FROM `join_columns` WHERE `join_id`=tmp_joinid;
END LOOP loopjoins;
CLOSE cur0;

END IF;
COMMIT;
SELECT irid;

1064 - 你的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在 'DECLARE cur0 CURSOR FOR SELECT joins.id FROM joins WHERE 附近使用的正确语法table_left_id=i' 在第 12 行

谢谢

最佳答案

一个更好的选择是避免光标,你可以用类似的东西替换光标

DELETE FROM `join_columns`
WHERE `join_id` in
(SELECT `id`
FROM `joins`
WHERE `table_left_id`=irid OR `table_right_id`=irid);

关于MySql 存储过程循环游标 - 语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18960392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com