ホームページ  >  記事  >  データベース  >  MySQLのストアドプロシージャと関数呼び出しの詳細説明(事例)

MySQLのストアドプロシージャと関数呼び出しの詳細説明(事例)

coldplay.xixi
coldplay.xixi転載
2021-03-26 09:17:214044ブラウズ

MySQLのストアドプロシージャと関数呼び出しの詳細説明(事例)

ストアド プロシージャと関数を呼び出す方法はたくさんあります。ストアド プロシージャは call ステートメントを使用して呼び出す必要があり、ストアド プロシージャはデータベースに関連付けられています。他のデータベースでストアド プロシージャを実行する場合は、データベース名を指定する必要があります。たとえば、dbname.procname を呼び出します。ストアド関数は、MySQL の事前定義関数と同じ方法で呼び出されます。

(無料学習の推奨事項: mysql ビデオ チュートリアル)

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

ストアド プロシージャは、call ステートメントを通じて呼び出されます。構文は次のとおりです:

call sp_name([parameter[,...])

call ステートメントは、create プロシージャで以前に作成されたストアド プロシージャを呼び出します。 sp_name はストアド プロシージャ、Name、parameter はストアド プロシージャのパラメータです。

[例 1] CountProcl という名前のストアド プロシージャを定義し、このストアド プロシージャを呼び出します。

ストアド プロシージャを定義します:

mysql> delimiter //mysql> create procedure CountProcl(in sid int ,out num int)
    -> begin
    -> select count(*) into num from fruits where s_id = sid;
    -> end //Query OK, 0 rows affected (0.06 sec)mysql> delimiter ;

ストアド プロシージャを呼び出します:

mysql> call CountProcl (101,@num);Query OK, 1 row affected (0.08 sec)

戻り結果を表示します:

mysql> select @num;+------+| @num |+------+|    3 |+------+1 row in set (0.00 sec)

ストアド プロシージャは、次の結果を含むフルーツを返しました。指定された s_id=101 サプライヤーが提供する果物の種類。戻り値は num 変数に格納されます。表示するには選択を使用します。戻り結果は 3 です。

2. ストアド関数の呼び出し

MySQL では、ストアド関数の使用は MySQL 内部関数の使用と同じです。つまり、ユーザー定義ストアド関数は MySQL 内部関数と同じ性質を持っています。

[例 2] ストレージ関数 CountProc2 を定義し、この関数を呼び出すコードは次のとおりです:

mysql> delimiter //mysql> create function CountProc2 (sid int)
    -> returns int
    -> begin
    -> return (select count(*) from fruits where s_id = sid);
    -> end//Query OK, 0 rows affected (0.06 sec)mysql> delimiter ;

ストレージ関数の呼び出し:

mysql> delimiter ;mysql> select CountProc2(101);+-----------------+| CountProc2(101) |+-----------------+|               3 |+-----------------+1 row in set (0.05 sec)

可能な限りこの例は前の例と同じです 例で返される結果は同じです ストアド ファンクションとストアド プロシージャの定義は若干異なりますが、同じ機能を実現できます。

#その他の関連する無料学習の推奨事項: mysql チュートリアル(ビデオ)

以上がMySQLのストアドプロシージャと関数呼び出しの詳細説明(事例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。