ホームページ >データベース >mysql チュートリアル >mysqlストアドプロシージャの戻り値

mysqlストアドプロシージャの戻り値

PHPz
PHPzオリジナル
2023-05-11 18:07:07691ブラウズ

MySQL ストアド プロシージャは、ユニットとして呼び出すことができる、事前に作成された SQL ステートメントのセットです。 MySQL ストアド プロシージャには、データベースのパフォーマンスの向上、ネットワーク トラフィックの削減、ビジネス ロジックの統合と簡素化、セキュリティの向上など、多くの利点があります。ただし、MySQL ストアド プロシージャを使用するプロセスでは、結果セットも返す必要がある場合があります。この記事では、MySQL ストアド プロシージャを使用して結果セットを返す方法について詳しく説明します。

  1. ストアド プロシージャの作成

MySQL ストアド プロシージャの作成は非常に簡単で、CREATE PROCEDURE ステートメントを使用して実行できます。次に、2 つの整数パラメータを受け取り、それらを加算して結果を返すストアド プロシージャの簡単な例を示します。

DELIMITER //
CREATE PROCEDURE add_numbers(IN num1 INT, IN num2 INT, OUT result INT)
BEGIN
SET result = num1 num2;
END //
DELIMITER ;

  1. ストアド プロシージャの呼び出し

ストレージの呼び出しプロセスは次のとおりです。これも非常に簡単で、CALL ステートメントを使用するだけです。上記で作成したストアド プロシージャを呼び出し、結果をコンソールに出力する例を次に示します。

SET @a = 1;
SET @b = 2;
CALL add_numbers (@a, @ b, @result);
SELECT @result;

  1. 結果セットを返す

MySQL ストアド プロシージャで結果セットを返す必要がある場合は、カーソルを使用できます。 CURSOR を使用すると、結果セットを反復処理し、結果を変数に保存できます。製品リストの結果セットを返す例を次に示します。

DELIMITER //
CREATE PROCEDURE get_product_list()
BEGIN
DECLAREned INT DEFAULT FALSE;
DECLARE id INT ;
DECLARE name VARCHAR(255);

DECLARE cur CURSOR FOR SELECT ID, name FROM products FROM;
DECLARE CONTINUE HANDLER FOR NOT FOUND SETned = TRUE;

CREATE TABLE存在しない場合 temp_product_list(id INT, name VARCHAR(255));
TRUNCATE TABLE temp_product_list;

OPEN cur;

read_loop: LOOP

FETCH cur INTO id, name;
IF done THEN
  LEAVE read_loop;
END IF;

INSERT INTO temp_product_list(id, name)
VALUES(id, name);

END LOOP;

CLOSE cur;

SELECT * FROM temp_product_list;
END //
DELIMITER ;

上記のコードでは、まず CURSOR オブジェクトを作成し、クエリする製品リストを指定します。結果セットを走査しながら、結果を temp_product_list テーブルに 1 つずつ挿入します。最後に、クエリ結果を返します。

  1. 返された結果の処理

ストアド プロシージャを呼び出す場合、SELECT ステートメントを使用して返された結果セットを処理できます。例:

CALL get_product_list();

このステートメントは get_product_list ストアド プロシージャを呼び出し、結果セットを返します。 SELECT ステートメントを使用して、結果セットをコンソールに出力できます:

SELECT * FROM temp_product_list;

このステートメントは、temp_product_list テーブル内のすべての結果を出力します。

概要

MySQL ストアド プロシージャは、データベースのパフォーマンスの向上、ネットワーク トラフィックの削減、ビジネス ロジックの統合と簡素化、セキュリティの向上に役立つ非常に便利なテクノロジです。実際の使用では、結果セットを返す必要がある場合がありますが、この場合、CURSOR を使用してクエリ結果を走査し、結果をテーブルに保存できます。最後に、SELECT ステートメントを使用して、返された結果セットを処理できます。この記事の導入により、読者は MySQL ストアド プロシージャを使用して結果セットを返す方法についてより深く理解できるようになると思います。

以上がmysqlストアドプロシージャの戻り値の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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