SQLデータベーストリガーの書き方

SQLデータベースのトリガーを作成するには、次の構文を使用します。

トリガー名 CREATE TRIGGER {挿入時 | 更新時 | 削除時} {BEFORE | AFTER} table_name [FOR EACH ROW] BEGIN – トリガーで実行されるSQL END;

トリガ名にtrigger_nameを指定し、table_nameはトリガを関連付けるテーブル名です。BEFOREとAFTERはトリガのタイミングを指示し、INSERT、UPDATE、DELETEはトリガの対象となる操作の種類を指示します。

各行に対するトリガーの実行指定

BEGINとENDで囲まれた部分に、トリガーで実行するSQL文を記述します。このSQL文には、INSERT、UPDATE、DELETEなどの操作を含めることができ、他のテーブルの処理や、現在のテーブルのデータを変更するために使用できます。

次の例は、新しいレコードを挿入したときに実行されるトリガを作成するためのものです。

INSERT文の後にテーブルtable_nameにINSERTされた時に行が実行されるトリガーtrg_insertを作成します。

“`
CREATE TRIGGER trg_insert
AFTER INSERT
ON table_name
FOR EACH ROW
BEGIN
— トリガーの実行文
INSERT INTO other_table (column1, column2)
VALUES (NEW.column1, NEW.column2);
END;
“`

在这个示例中,trg_insert是触发器的名称,AFTER INSERT表示触发器在插入新记录后执行,table_name是触发器所依附的表的名称,FOR EACH ROW表示触发器对每一行记录都执行。

BEGIN と END の間の SQL 文は、挿入したレコードの column1 と column2 フィールドの値を、other_table 表の column1 と column2 フィールドに挿入します。NEW は特別なキーワードで、挿入された新しいレコードの値を表します。

bannerAds