MySqlトリガー更新インスタンスの詳細
MySQLのトリガーは、テーブル上で自動操作を実行する特殊なタイプのストアドプロシージャです。指定したイベントが発生すると、トリガーが起動し、定義された操作を実行します。
MySQLトリガーのUPDATEの例の詳細な説明は次のとおりです:
employeesというテーブルがあると仮定すると、以下のカラムが含まれます。
- ID: 従業員ID(プライマリキー)
- 名前:従業員の名前
- 給料:従業員の給与
- 古い給与:前回の更新前の給与を保存するために使用します。
従業員の給与を更新する際、古い給与を自動的にold_salary列に保存したいです。以下のトリガーを使用して実現できます。
CREATE TRIGGER update_salary_trigger
BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
SET NEW.old_salary = OLD.salary;
END;
このトリガーはupdate_salary_triggerと名前が付けられ、employeesテーブルの更新操作が行われる前に発動します。BEFORE UPDATEキーワードはトリガーが更新操作前に発動することを指定しています。
FOR EACH ROWキーワードは、トリガーが各行のデータに対して1回だけ実行されるように指定します。
BEGINとENDの間ではトリガーが実行されます。この例では、SETステートメントを使用して、古い給与(即 OLD.salary)をNEW.old_salaryに割り当て、更新前の給与をold_salary列に格納しています。
このトリガーを使用すると、次のUPDATEステートメントを実行する際に、
UPDATE employees
SET salary = 5000
WHERE id = 1;
トリガーは更新操作の前にトリガーされ、もともとの給与(例えば4000)をold_salary列に保存します。
最後に、employeesテーブルが更新されたデータは以下の通りです:
| id | name | salary | old_salary |
|----|-------|--------|------------|
| 1 | John | 5000 | 4000 |
| 2 | Jane | 3000 | 3000 |
| 3 | Alice | 2000 | 2000 |
これはMySQLトリガーのUPDATEの詳細な例です。トリガーは特定のビジネスニーズを満たすためにさまざまな自動化操作を実行するために使用できます。