パフォーマンスや操作の容易性などさまざまな理由からして、行トリガーは文トリガーよりも自然な選択です。
1つまたは複数のトリガーが設定されているデータ変更文を実行すると、システムは文の実行前に1つ(削除または更新操作の場合)または複数(更新操作の場合)の遷移テーブルを作成します。
行トリガーの場合、システムは遷移テーブル セットを1行ずつアクセスしながら走査します。遷移テーブルの順序は指定できないので、遷移テーブルの行の順序に応じて結果が変わることを意図したトリガー対象アクションは記述しないでください。
以下の表に示すように、行トリガーの実行に必要な作業量は、トリガーされるアクションが使用する情報によって異なります。
トリガーされるアクションのデータのソース | 説明 |
---|---|
処理対象の個々の行 |
|
トリガー文によって変更されるすべての行から構成される遷移テーブル |
|
変更するテーブルの行の全セット | この動作は遷移テーブルの行の場合の動作と似ていますが、OLDまたはNEW値を示す構文がありません。
この情報はトリガー テーブルに由来するので、REFERENCING句がなくてもアクセスできます。 これらの種類の外部参照では通常、トリガー テーブルへの直接アクセスを以下の方法で使用します。
|