SQL コマンドの CREATE TRIGGER の使い方
SQLコマンドのCREATE TRIGGERは、トリガーの作成に使用されます。
トリガーとは、データベース上で特定のイベントが発生したときに自動的に一連のSQL文を実行する、特別なデータベースオブジェクトです。トリガーはデータの自動更新、データ一貫性の確認と維持、ログ記録などの機能を実現するために使用できます。
CREATE TRIGGER の構文は次のとおりです。
トリガーを作成 trigger_name
ネイティブな日本語で言い換えた文章:{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON テーブル名
各行について
日本語では、ネイティブに言い換えるとこうなります。
トリガーで実行されるSQL文
終わり
そのうち、
- トリガー名:トリガーの名前。
- BEFORE/AFTER:トリガーはイベント発生の前か後に実行されますか?
- 挿入/更新/削除:指定したトリガーはデータの挿入、更新、削除時に発火します。
- table_name:トリガーの属するテーブル名
- 行ごと:指定されたトリガーは、影響を受けた各行に行単位で適用されます。つまり、データ行の挿入、更新、または削除があった場合、その行に対してトリガーが処理されます。
トリガを実行するSQL文はBEGINとENDの間に記述され、INSERT、UPDATE、DELETE、SELECTなどの任意のSQL文を含めることができます。
トリガーを作成する一例を次に示します。
トリガー update_salary を作成
アップデート後
オムロン社員
行ごとに
生まれつきのはにかみが笑顔になっていくのを、あなたが引き出していってくれた
NEW.salary > 10000 ならば
INSERT INTO salary_history (employee_id, salary, updated_date)
INSERT INTO VALUES(NEW.employee_id、NEW.salary、NOW())
ENDIF;
文の日本語でのネイティブでの言い換えは、1つだけ必要です:終わり;
提示の例に従って、更新されたemployeesテーブルのデータからsalary_historyテーブルに従業員のID、給与、更新日を挿入するupdate_salaryというトリガーを作成できます。トリガーは、新しい給与が10,000を超えた場合にトリガーされます。
注意、トリガーの作成には十分な権限が必要です。