存储过程没有 return 多行

Store procedure doesn't return mutiple rows

我只想使用 CURSOR 过程 return 多行。但它 return 空值。我使用了一个简单的 select 查询来进行测试。

   CREATE DEFINER=`root`@`localhost` PROCEDURE `get_user`()
        READS SQL DATA
    BEGIN
        DECLARE id INT;
        DECLARE name VARCHAR (256);

        DECLARE done int default 0;

        DECLARE curl CURSOR FOR

        SELECT id, name FROM user; 

        DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = 1;

        OPEN curl;
            data_loop:LOOP
                FETCH curl INTO id, name;
                IF done=1 THEN 
                    leave data_loop;
                END IF;
            END LOOP data_loop;
        CLOSE curl;
    END

程序必须以 SELECT.

终止(大约多行)

但是我不能显示你的最终结果SELECT。

例如,您可以使用具有与 USER table 相同字段的临时 table USERS2 (CREATE TEMPORARY TABLE users2)。在循环中你可以写USERS2(INSERT INTO users2 ... and so on),所以最后你会写:

SELECT * FROM users2