ホームページ > データベース > mysql チュートリアル > MySQL は変数を宣言し、ストアド プロシージャの外で While ループを使用できますか?

MySQL は変数を宣言し、ストアド プロシージャの外で While ループを使用できますか?

Linda Hamilton
リリース: 2024-10-24 10:52:29
オリジナル
671 人が閲覧しました

Can MySQL Declare Variables and Use While Loops Outside Stored Procedures?

MySQL のストアド プロシージャの外で変数を宣言し、while ループを使用する

MySQL では、ストアド プロシージャの外で変数を宣言し、while ループを使用することはできません。これは、これらの構造は BEGIN...END 句内で宣言する必要があり、ストアド プロシージャ、関数、トリガー、イベント内でのみ使用できるためです。

制限の克服

変数を宣言し、ストアド プロシージャの外部で while ループを使用する必要がある場合は、この機能をカプセル化する一時ストアド プロシージャを作成できます。以下に従うことができるテンプレートを示します:

<code class="sql">CREATE TEMPORARY PROCEDURE my_temp_proc()
BEGIN
  DECLARE var1 INT;
  DECLARE var2 VARCHAR(255);
  
  WHILE var1 < 10 DO
    SET var2 = CONCAT(var2, 'Iteration ', var1, '\n');
    SET var1 = var1 + 1;
  END WHILE;
END</code>
ログイン後にコピー

使用法

一時ストアド プロシージャを実行し、宣言された変数にアクセスするには、次の手順を使用できます。

  1. ストアド プロシージャを実行します:

    <code class="sql">CALL my_temp_proc();</code>
    ログイン後にコピー
  2. INFORMATION_SCHEMA.ROUTINE_VARIABLES テーブルを使用して宣言された変数をクエリします:

    <code class="sql">SELECT ROUTINE_NAME, VARIABLE_NAME, VARIABLE_TYPE, VARIABLE_VALUE
    FROM INFORMATION_SCHEMA.ROUTINE_VARIABLES
    WHERE ROUTINE_NAME = 'my_temp_proc';</code>
    ログイン後にコピー

これにより、宣言された変数の値が出力されます。

以上がMySQL は変数を宣言し、ストアド プロシージャの外で While ループを使用できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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