以下の例は、1つのトリガー アクション文が別のトリガーを起動する方法を示します。
以下に、テーブルの定義を示します。
CREATE TABLE tab1 ( a INTEGER, b INTEGER, c INTEGER); CREATE TABLE tab2 ( d INTEGER, e INTEGER, f INTEGER); CREATE TABLE tab3 ( g INTEGER, h INTEGER, i INTEGER);
以下に、トリガーの定義を示します。
CREATE TRIGGER trig1 AFTER INSERT ON tab1 REFERENCING NEW AS NewRow FOR EACH ROW ( INSERT INTO tab2 VALUES (NewRow.a + 10, NewRow.b + 10, NewRow.c);); CREATE TRIGGER trig2 AFTER INSERT ON tab2 REFERENCING NEW AS NewRow FOR EACH ROW ( INSERT INTO tab3 VALUES (NewRow.d + 100, NewRow.e + 100, NewRow.f););
ここで、以下のINSERTリクエストが実行依頼されたと仮定します。
INSERT INTO tab1 VALUES (1,2,3);
このトリガー イベントは、tab2への挿入を実行するトリガーを起動します。この操作は、以下のINSERTリクエストと等価です。
INSERT INTO tab2 VALUES (11,12,3);
このトリガー イベントは、tab3への挿入を実行するトリガーを起動します。この操作は、以下のINSERTリクエストと等価です。
INSERT INTO tab3 VALUES (111,112,3);