MySQL 5.7 курсор не возвращает никаких значений - PullRequest
0 голосов
/ 01 июля 2019

Mysql (версия 5.7) курсор не работает. Я пытался много раз и проверил онлайн, не мог найти, что не так.

Он корректно просматривает столько записей в таблице валют. Но когда я пытаюсь прочитать из курсора, он возвращает только ноль, а не фактические значения из валюты таблицы. В таблице валют есть данные.

DROP PROCEDURE IF EXISTS proc2;

CREATE PROCEDURE proc2()
BEGIN
    DECLARE finished INTEGER DEFAULT 0;
    DECLARE code VARCHAR(255);
    DECLARE myCursor CURSOR FOR SELECT code FROM currency;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;

    OPEN myCursor;

    delete from dummy;

    read_loop: LOOP
        FETCH myCursor INTO code;   

         IF finished = 1 THEN 
            LEAVE read_loop;
         END IF;

        insert into dummy(name) values(code);

    END LOOP read_loop;

    CLOSE myCursor;

End;

1 Ответ

0 голосов
/ 04 июля 2019

Наконец-то это сработало с приведенным ниже изменением скрипта. (т.е. после добавления псевдонима таблицы.)

По какой-то причине столбец, который я опробовал 'code', ожидает псевдоним. Возможно зарезервированное ключевое слово, не уверен.

 DECLARE myCursor CURSOR FOR SELECT c.code FROM currency c;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...