"오류 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!