gpt4 book ai didi

mysql - 事务中的游标循环

转载 作者:行者123 更新时间:2023-11-29 02:32:38 24 4
gpt4 key购买 nike

我什至无法让这个基本的 CURSOR LOOP 在我的 TRANSACTION 中运行。

请帮忙。提前致谢!

CREATE PROCEDURE ClearItems(IN itemName CHAR)
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE bID INT(255);
DECLARE bIDs CURSOR FOR SELECT id FROM table1 WHERE column1 = itemName AND column2 = 'b' ORDER BY column3 DESC, date ASC;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
START TRANSACTION;
OPEN bIDs;
clear_loop: LOOP
FETCH bIDs INTO bID;
IF done THEN
LEAVE clear_loop;
END IF;
INSERT INTO table2 (column1) SELECT bID;
END LOOP;
CLOSE bIDs;
COMMIT;
END //
DELIMITER ;

最佳答案

解决问题 - 重命名声明的 ID 变量。字段名称和变量不能相同。


此外,如果您想填充另一个表,请尝试使用 INSERT ... SELECT陈述。它将帮助您避免使用游标。例如-

INSERT INTO table2(`2column1`)
SELECT id
FROM table1
WHERE `1column1` = itemName AND `1column2` = 'b'
ORDER BY `1column3` DESC, date ASC;

关于mysql - 事务中的游标循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10705005/

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