MySQL ストアドプロシージャの基本的な使用方法
MySQLのストアドプロシージャは、呼び出されて実行されるSQLステートメントのあらかじめ定義された集合です。ストアドプロシージャはパラメータを受け入れて結果を返し、データベースに格納してパフォーマンスとセキュリティを高めるために繰り返し使用できます。
MySQLのストアドプロシジャの基本的な使い方を以下に示します。
- ストアドプロシージャを作成する:
CREATE PROCEDURE procedure_name([IN | OUT | INOUT] parameter_name data_type, ...)
BEGIN
-- 存储过程的 SQL 语句
END;
- ストアドプロシージャを削除します
DROP PROCEDURE IF EXISTS procedure_name;
- ストアドプロシージャを呼び出す:
CALL procedure_name([parameter_value, ...]);
- ストアドプロシージャのパラメータの型:
- 値を格納プロシージャへ受け渡すのに使用される入力パラメータ。
- OUT:戻り値パラメータ。値をストアドプロシージャから呼び出し元に返すために使用します。
- INOUT:入力出力パラメーターは値を受け取ると同時に、呼び出し元に値を渡すことができます。
- ストアドプロシジャのSQL文:
- SELECT、INSERT、UPDATE、DELETEなどの通常のSQL文を使用できます。
- IF,CASEなどの条件分岐文や、LOOP,WHILEなどの繰り返し文、DECLARE HANDLERなど例外処理もサポートしている。
- ストアドプロシージャの戻り値:
- OUTパラメータまたはINOUTパラメータを使用して、ストアドプロシージャの結果を返すことができます。
- ストアドプロシージャは、SELECT文を使って結果セットを返すこともできます。
- それは何?
CREATE PROCEDURE get_customer(IN customer_id INT, OUT customer_name VARCHAR(255))
BEGIN
SELECT name INTO customer_name FROM customers WHERE id = customer_id;
END;
CALL get_customer(1, @customer_name);
SELECT @customer_name;
以上の説明はMySQLストアドプロシージャの基本用途であり、実際のニーズに合わせ、ストアドプロシージャを定義、呼び出し、ビジネスロジックに合わせて対応するSQL文を書くことが可能です。