SQL コマンドの CREATE TRIGGER の使い方

SQLコマンドのCREATE TRIGGERは、トリガーの作成に使用されます。

トリガーとは、データベース上で特定のイベントが発生したときに自動的に一連のSQL文を実行する、特別なデータベースオブジェクトです。トリガーはデータの自動更新、データ一貫性の確認と維持、ログ記録などの機能を実現するために使用できます。

CREATE TRIGGER の構文は次のとおりです。

トリガーを作成 trigger_name

ネイティブな日本語で言い換えた文章:{BEFORE | AFTER} {INSERT | UPDATE | DELETE}

ON テーブル名

各行について

日本語では、ネイティブに言い換えるとこうなります。

トリガーで実行されるSQL文

終わり

そのうち、

  1. トリガー名:トリガーの名前。
  2. BEFORE/AFTER:トリガーはイベント発生の前か後に実行されますか?
  3. 挿入/更新/削除:指定したトリガーはデータの挿入、更新、削除時に発火します。
  4. table_name:トリガーの属するテーブル名
  5. 行ごと:指定されたトリガーは、影響を受けた各行に行単位で適用されます。つまり、データ行の挿入、更新、または削除があった場合、その行に対してトリガーが処理されます。

トリガを実行する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を超えた場合にトリガーされます。

注意、トリガーの作成には十分な権限が必要です。

bannerAds