問題:
您有一個預存程序不需要傳回任何值。執行成功,但是完成後輸出錯誤訊息:
Error: No data - zero rows fetched, selected, or processed
解決方案:
出現錯誤訊息是因為儲存程序沒有明確處理該情況其中任何操作都不會回傳任何數據。要解決此問題,您可以包含DECLARE CONTINUE HANDLER 語句來忽略NOT FOUND 錯誤:
<code class="sql">DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>
說明:
<code class="sql">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; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>
附加說明:
對於MySQL 版本5.5. 13以上版本,也可以在預存程序末尾加上「dummy」語句來清除警告:<code class="sql">SELECT name INTO l_name FROM customer_tbl LIMIT 1;</code>這條語句成功,不涉及任何數據,有效清除了警告警告訊息。
以上是**當沒有預期結果時如何解決預存程序中的「錯誤 1329:無資料」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!