親テーブルに対するすべてのUPDATEおよびDELETEが子テーブルに伝播することを保証するとします。参照整合性をプロシージャとして適用するために設計されたこの例は、2つのAFTER文トリガーを親テーブルに定義して、親テーブルに対するプライマリ キーの更新が子テーブルの適切な外部キー列に派生するようにします。
以下に、テーブルの定義を示します。
CREATE TABLE parent_tab ( prime_key INTEGER, column_2 INTEGER, column_3 INTEGER) UNIQUE PRIMARY INDEX (prime_key); CREATE TABLE child_tab ( prime_key INTEGER, for_key INTEGER, column_3 INTEGER FOREIGN KEY (for_key) REFERENCES WITH NO CHECK OPTION parent_tab(prime_key));
ここで、対象テーブルのParent_Tabにトリガーを定義します。
CREATE TRIGGER UpdateForKey AFTER UPDATE OF prime_key ON parent_tab REFERENCING OLD TABLE AS OldTable NEW TABLE AS NewTable FOR EACH STATEMENT ( UPDATE child_tab SET for_key=NewTable.prime_key WHERE child_tab.for_key=OldTable.prime_key;); CREATE TRIGGER DelForKey AFTER DELETE ON parent_tab REFERENCING OLD TABLE AS OldTable FOR EACH STATEMENT ( UPDATE child_tab SET for_key=NULL WHERE for_key=OldTable.prime_key;);