ホームページ  >  記事  >  データベース  >  SQLトリガーの書き方

SQLトリガーの書き方

PHPz
PHPzオリジナル
2024-02-21 11:03:041243ブラウズ

SQLトリガーの書き方

SQL トリガーは、データベース内で特定のイベントが発生したときに、定義されたアクションを自動的に実行できるデータベース管理システムの特別なオブジェクトです。トリガーを使用して、データの挿入、更新、削除などのさまざまなシナリオを処理できます。この記事では、SQLトリガーの書き方と具体的なコード例を紹介します。

SQL トリガーの基本的な構文は次のとおりです。

CREATE TRIGGER trigger_name
{BEFORE | AFTER} {INSERT | UPDATE | DELETE}
ON table_name
[FOR EACH ROW]
trigger_body

このうち、trigger_name はトリガーの名前 (BEFORE または #) です。 ##AFTERキーワードは、イベントの前または後にトリガーが実行されることを指定します。 INSERTUPDATEDELETEキーワードは、イベントに関連付けられたイベント タイプを指定します。トリガー、table_name は、トリガーに関連付けられたテーブル名です。 FOR EACH ROW は、データの行ごとにトリガーが実行されることを指定します。trigger_body は、トリガーが実行する必要があるアクションです。

以下では、いくつかの具体的なシナリオを通じて SQL トリガーを作成する方法を示します。

シナリオ 1: データを挿入する前に作成時間を自動的に設定します。

users というテーブルがあり、idnamecreate_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 トリガーの例です。実際のアプリケーションでは、必要に応じて、より複雑なトリガーを作成できます。ただし、トリガーが多すぎる、または複雑すぎるとデータベースのパフォーマンスに一定の影響を与える可能性があるため、トリガーを設計する際には慎重な評価と考慮が必要であることに注意してください。

以上がSQLトリガーの書き方の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。