4.4 トリガ
トリガを定義すると,ある表への操作(更新,挿入,及び削除)を契機に自動的にSQL文を実行させることができます。トリガは,定義する表,トリガを動作させる契機となるSQL(トリガを引き起こすSQL),自動的に実行させるSQL文(トリガSQL文),その動作が実行される条件(トリガ動作の探索条件)などを指定して定義します。トリガを定義した表にトリガ動作の探索条件を満たすSQL文が実行されると,トリガSQL文が自動的に実行されます。トリガの概要を次の図に示します。
- [説明]
-
UAPからトリガを引き起こすSQLが実行されると,トリガを定義した表Aでトリガが呼び出され,トリガ動作の探索条件を満たしている場合,自動的にトリガSQL文(この場合,表Bへの行の挿入や表Cへの行の更新)が実行されます。
トリガを使用すると,次のような操作をUAPで記述する必要がなくなります。
-
ある表の更新に伴ってほかの表を必ず更新する
-
ある表の更新に伴って,その更新行中のある列を必ず更新する(列と列を関連づける)
例えば,商品管理表の価格が変更されると商品管理履歴表に変更内容を蓄積するという場合,トリガを使用しないと,商品管理表を更新するUAPは常に商品管理履歴表も更新する必要があります。トリガを使用すると,商品管理履歴表への操作を自動化できるため,商品管理表を更新するUAPは商品管理履歴表の更新を考慮する必要がありません。このように,トリガを適切に使用するとUAPを作成するときの負荷を軽減できます。
なお,トリガを定義すると,その表を使用する関数,手続き,及びトリガのSQLオブジェクトは無効になるため,再作成する必要があります。また,トリガが使用している資源(表,インデクスなど)が定義,定義変更,又は削除された場合,トリガのSQLオブジェクトは無効になるため,再作成する必要があります。
トリガの詳細については,マニュアル「HiRDB システム導入・設計ガイド」を参照してください。