2015-02-05 1 views
0

Я просто хочу вернуть несколько строк, используя CURSOR процедуры. Но он возвращает пустое значение. Я использовал простой запрос выбора для целей тестирования.Процедура магазина не возвращает несколько строк

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 

ответ

1

Процедура должна быть завершена (около нескольких строк) с помощью SELECT.

Но я не могу показать ваш окончательный SELECT.

Например, вы можете использовать временную таблицу USERS2 (CREATE TEMPORARY TABLE users2) с теми же полями таблицы USER. В цикле вы можете написать в потребляющие2 (INSERT INTO users2 ... and so on), так что в конце концов вы будете писать:

SELECT * FROM users2 
+1

Использование временной таблицы является примером. Главное - вернуть окончательный SELECT –