如何在不傳回資料的預存程序中抑制「錯誤1329:無資料」?

Patricia Arquette
發布: 2024-10-26 15:46:30
原創
543 人瀏覽過

How to Suppress

克服「錯誤1329:無資料」困境

許多開發人員遇到令人沮喪的「錯誤1329:無資料- 提取、選擇或處理零行”執行預存程序。然而,即使過程正常運行,此錯誤也經常發生,這就提出瞭如何抑制此不必要的消息的問題。

一個潛在的解決方案在於預存程序本身。預設情況下,預存程序應傳回結果集。但是,如果程序執行不產生任何資料的操作(例如資料操作或記錄更新),則會觸發錯誤訊息。

要解決此問題,我們可以修改預存程序以明確指示:它不傳回任何資料。這可以透過將以下行新增至過程的開頭來實現:

<code class="sql">READS SQL DATA</code>
登入後複製

此行通知資料庫該程序將僅從表中讀取,不會傳回任何行。

另一種方法涉及處理過程中的 NOT FOUND 異常。當使用遊標從表中取得行時,可能會遇到沒有更多行可供取得的情況。這將導致遊標引發 NOT FOUND 異常。透過捕獲這個異常並設置一個標誌,我們可以避免錯誤訊息。

<code class="sql">DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>
登入後複製

透過新增這一行,我們指示資料庫在遊標遇到 NOT FOUND 異常時將完成標誌設為 1。然後,可以使用此標誌退出遊標循環並完成該過程,而不會觸發錯誤訊息。

最後,另一個解決方法是執行一個從表中讀取並成功的附加虛擬查詢。這將清除 MySQL 5.5.13 上的警告。

<code class="sql">SELECT name INTO l_name FROM customer_tbl LIMIT 1;</code>
登入後複製

透過遵循這些方法,開發人員可以抑制不傳回任何資料的預存程序的「錯誤 1329」訊息,確保更順利地執行,而不會出現不必要的錯誤。錯誤提示。

以上是如何在不傳回資料的預存程序中抑制「錯誤1329:無資料」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板