1. はじめに
MySQL は、SQL ステートメントを使用してデータを操作する一般的なリレーショナル データベース管理システム (RDBMS) です。ストアド プロシージャは、繰り返し使用および呼び出しできる SQL ステートメントのコレクションです。この記事では、MySQL データベースにおけるストアド プロシージャの作成、呼び出し、インスタンス操作について紹介します。
2. MySQL ストアド プロシージャの作成
MySQL でストアド プロシージャを作成するには、次のステートメントを使用できます:
CREATE PROCEDURE procedure_name ([parameter_list]) BEGIN -- put your SQL statements here; END;
procedure_name
: ストアド プロシージャ名。 parameter_list
: パラメータ リスト。空でもかまいません。 BEGIN
および END
: SQL ステートメントの開始文字と終了文字。 ストアド プロシージャには 0 個以上のパラメータを含めることができます。構文は次のとおりです:
CREATE PROCEDURE procedure_name (IN|OUT|INOUT parameter_name data_type)
の意味送信パラメータ型と受信パラメータ型にそれぞれ渡される、parameter_name
と data_type
は、それぞれパラメータ名とデータ型を表します。
CREATE PROCEDURE get_employee (IN employee_id INT) BEGIN SELECT * FROM employee WHERE id = employee_id; END;
CALL procedure_name (parameter_list);
CALL get_employee(1);
CREATE PROCEDURE transfer(IN from_account INT, IN to_account INT, IN amount DECIMAL(10,2)) BEGIN DECLARE from_balance DECIMAL(10,2); DECLARE to_balance DECIMAL(10,2); START TRANSACTION; SELECT balance INTO from_balance FROM account WHERE id = from_account FOR UPDATE; SELECT balance INTO to_balance FROM account WHERE id = to_account FOR UPDATE; IF from_balance < amount THEN ROLLBACK; SELECT 'Insufficient balance' AS message; ELSE UPDATE account SET balance = from_balance - amount WHERE id = from_account; UPDATE account SET balance = to_balance + amount WHERE id = to_account; COMMIT; SELECT 'Transfer succeed!' AS message; END IF; END;
CALL transfer(1, 2, 100);
以上がmysqlデータベースのストアドプロシージャの詳しい説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。