大まかに言うと、トリガーには 2 つの使用例があります1
1) 物事を「自動的に」実現すること。この場合、トリガーは副作用を引き起こします。実行された (プリミティブ) 演算子の挿入、更新、または削除が原因でトリガーが起動された場合、予想されなかった方法でデータが変更されます。
ここでの一般的なコンセンサスは、トリガーが実際に有害であるということです。INSERT、UPDATE、または DELETE ステートメントのよく知られたセマンティクスが変更されるためです。これら 3 つのプリミティブ SQL 演算子のセマンティクスを変更すると、将来、SQL プリミティブを使用して操作したときに期待どおりに動作しないデータベース テーブルで作業する必要がある他の開発者が苦しむことになります。
2) 宣言的に処理できるルール以外のデータ整合性ルールを強制するため (CHECK、PRIMARY KEY、UNIQUE KEY、および FOREIGN KEY を使用)。このユースケースでは、すべてのトリガーが実行するのは、INSERT/UPDATE/DELETE によって行われている変更が許可されているかどうかを確認するためのクエリ (SELECT) データです。宣言的制約が私たちに行うのと同じように。この場合のみ、私たち (開発者) は施行をプログラムしました。
後者のユースケースにトリガーを使用しても害はありません。
私はそれについてブログを書いています: http://harmfultriggers.blogspot.com