Trigger
トリガとは、特定のイベント(INSERT/UPDATE/DELETE)が発生したときに自動実行されるデータベースコードである。監査、カスケード、制約に使われる。
目的
データ変更時に、アプリケーションの明示的な呼び出しなしでロジックを自動実行する。
メカニズム
BEFORE/AFTER × 行レベル/文レベルのトリガがある。イベントが発生するとトリガ関数が自動実行される。監査ログ、カスケード更新、複雑な制約チェックによく使われるが、暗黙実行はデバッグが難しく、意図しないカスケードが起きることもある。
ユースケース
- データ変更の監査ログ
- カスケード更新と同期
- 複雑な制約チェック
- マテリアライズドビューの自動更新
例
- 入力
AFTER UPDATE ON users → log changeOutputChange recorded automaticallyAudit trigger
よくあるエラー
- Trigger cascades cause recursion and deadlocks
- Limit trigger depth and avoid cycles