>데이터 베이스 >MySQL 튜토리얼 >MySQL 저장 프로시저에서 \'오류 1329: 데이터를 가져오거나 선택하거나 처리하지 않음\'을 해결하는 방법은 무엇입니까?

MySQL 저장 프로시저에서 \'오류 1329: 데이터를 가져오거나 선택하거나 처리하지 않음\'을 해결하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-25 19:11:02277검색

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 참조).

위 내용은 MySQL 저장 프로시저에서 \'오류 1329: 데이터를 가져오거나 선택하거나 처리하지 않음\'을 해결하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.