gpt4 book ai didi

MySQL 存储过程 : How to declare a Cursor for a Select from a temporary table?

转载 作者:可可西里 更新时间:2023-11-01 08:33:41 25 4
gpt4 key购买 nike

在 MySQL 存储过程中,如何为从 select 语句创建的临时表声明游标。谢谢,

DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_foo`$$
CREATE PROCEDURE sp_foo()
BEGIN
DROP TEMPORARY TABLE IF EXISTS `TmpMyTable`;
CREATE TEMPORARY TABLE `TmpMyTable` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`person_id` INT(11) NOT NULL,
`first_name` VARCHAR(60) NOT NULL,
`last_name` VARCHAR(60) NOT NULL,
PRIMARY KEY (`id`),
INDEX `idx_first_name` (`person_id`),
INDEX `idx_first_name` (`first_name`)
) ENGINE=MYISAM
SELECT
id AS `person_id`,
first_name,
last_name
FROM person
;

DECLARE _person_id INT(11);
DECLARE personCursor CURSOR
FOR
SELECT * FROM TmpMyTable;

OPEN personCursor;
LOOP
FETCH personCursor INTO _person_id;

...

END LOOP;
END$$
DELIMITER ;

最佳答案

在您的示例中,在创建临时表之前进行游标声明。看似不合逻辑,但确实有效。

关于MySQL 存储过程 : How to declare a Cursor for a Select from a temporary table?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19161358/

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