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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-24 10:52:29539ブラウズ

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。