ホームページ > データベース > mysql チュートリアル > **結果が期待できない場合にストアド プロシージャで「エラー 1329: データがありません」を解決するにはどうすればよいですか?**

**結果が期待できない場合にストアド プロシージャで「エラー 1329: データがありません」を解決するにはどうすればよいですか?**

Mary-Kate Olsen
リリース: 2024-10-28 20:30:30
オリジナル
843 人が閲覧しました

**How to Resolve

ストアド プロシージャで「エラー 1329: データがありません」を処理する方法

問題:

ストアド プロシージャがあります値を返す必要はありません。正常に実行されますが、完了後にエラー メッセージが出力されます:

Error: No data - zero rows fetched, selected, or processed
ログイン後にコピー

解決策:

ストアド プロシージャがケースを明示的に処理しないため、エラー メッセージが表示されます。どの操作によってもデータが返されない場合。これを解決するには、NOT FOUND エラーを無視する DECLARE CONTINUE HANDLER ステートメントを含めることができます。

<code class="sql">DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;</code>
ログイン後にコピー

説明:

DECLARE CONTINUE HANDLER ステートメントは、MySQL に次のように指示します。 NOT FOUND エラーを無視して、ストアド プロシージャの実行を続行します。特定のケースでは、customer_tbl テーブル内の行を反復するループの後に次のステートメントを追加する必要があります:

<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 以降では、ストアド プロシージャの最後に「ダミー」ステートメントを追加して警告をクリアすることもできます。

<code class="sql">SELECT name INTO l_name FROM customer_tbl LIMIT 1;</code>
ログイン後にコピー

このステートメントは成功し、データは含まれていないため、効果的に警告メッセージ。

以上が**結果が期待できない場合にストアド プロシージャで「エラー 1329: データがありません」を解決するにはどうすればよいですか?**の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート