«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как устранить «Ошибку 1329: данные не выбраны, не выбраны и не обработаны» в хранимых процедурах MySQL?

Как устранить «Ошибку 1329: данные не выбраны, не выбраны и не обработаны» в хранимых процедурах MySQL?

Опубликовано 4 ноября 2024 г.
Просматривать:248

How to Resolve \

Как устранить «Ошибку 1329: данные не выбраны, не выбраны и не обработаны»

При выполнении хранимых процедур, которые не возвращают значения, пользователи могут столкнуться с «Ошибкой 1329: нет данных — выбрано, выбрано или обработано ноль строк». Чтобы устранить эту проблему, выполните следующие действия:

Рассмотрите следующую хранимую процедуру:

CREATE PROCEDURE `testing_proc`()  
    READS SQL DATA  
BEGIN  
    DECLARE done INT DEFAULT 0;
    DECLARE l_name VARCHAR(20);
    DECLARE my_cur CURSOR FOR
        SELECT name FROM customer_tbl;
    OPEN my_cur;
        my_cur_loop:
        LOOP FETCH my_cur INTO l_name;
            IF done = 1 THEN
                LEAVE my_cur_loop;
            END IF;
            INSERT INTO names_tbl VALUES(l_name);
        END LOOP my_cur_loop;
    CLOSE my_cur;
END

Ошибка связана с тем, что MySQL отображает предупреждение даже после его обработки. Чтобы предотвратить это, включите следующую строку в конец процедуры:

DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

В качестве альтернативы добавьте «фиктивный» оператор, включающий таблицу и успешно выполняется после цикла, например:

SELECT name INTO l_name FROM customer_tbl LIMIT 1;

Это приведет к удалению предупреждения из-за ошибки/странного поведения MySQL (см. http://dev.mysql.com/doc/refman/5.5/en/show-warnings.html).

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3