SQL トリガーは、データベース内で特定のイベントが発生したときに、定義されたアクションを自動的に実行できるデータベース管理システムの特別なオブジェクトです。トリガーを使用して、データの挿入、更新、削除などのさまざまなシナリオを処理できます。この記事では、SQLトリガーの書き方と具体的なコード例を紹介します。
SQL トリガーの基本的な構文は次のとおりです。
CREATE TRIGGER trigger_name {BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON table_name [FOR EACH ROW] trigger_body
このうち、trigger_name
はトリガーの名前 (BEFORE
または #) です。 ##AFTERキーワードは、イベントの前または後にトリガーが実行されることを指定します。
INSERT、
UPDATE、
DELETEキーワードは、イベントに関連付けられたイベント タイプを指定します。トリガー、
table_name は、トリガーに関連付けられたテーブル名です。
FOR EACH ROW は、データの行ごとにトリガーが実行されることを指定します。
trigger_body は、トリガーが実行する必要があるアクションです。
シナリオ 1: データを挿入する前に作成時間を自動的に設定します。
users というテーブルがあり、
id、
name、
create_time という 3 つの列が含まれているとします。新しいユーザーを挿入する前に、
create_time を現在時刻に自動的に設定したいと考えています。
CREATE TRIGGER set_create_time BEFORE INSERT ON users FOR EACH ROW BEGIN SET NEW.create_time = NOW(); END;
シナリオ 2: データの更新後に変更時刻を自動的に更新します。
ユーザー情報を更新した後、update_time 列を最新の変更時刻に自動的に更新する必要があるとします。
CREATE TRIGGER set_update_time AFTER UPDATE ON users FOR EACH ROW BEGIN SET NEW.update_time = NOW(); END;
シナリオ 3: 削除されたデータを削除する前に、自動的にバックアップします。
場合によっては、データを削除する前に、削除するデータを別のテーブルに自動的にバックアップする必要がある場合があります。user_backup という名前のテーブルがあり、
users テーブルと同じ構造を持っているとします。削除するデータを
にバックアップしたいとします。ユーザーを削除する前に user_backup を実行してください。 テーブル。
CREATE TRIGGER backup_user BEFORE DELETE ON users FOR EACH ROW BEGIN INSERT INTO user_backup (id, name, create_time) VALUES (OLD.id, OLD.name, OLD.create_time); END;
以上がSQLトリガーの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。