1. ホーム
  2. sql

[解決済み】データベーストリガーは悪なのか?[クローズド]

2022-04-12 18:56:58

質問

データベーストリガーは悪い考えか?

私の経験では、トリガーは邪道です。なぜなら、意外な副作用をもたらす可能性があり、デバッグが難しいからです(特に、あるトリガーが別のトリガーを起動した場合)。 多くの場合、開発者はトリガーがあるかどうか調べようともしません。

一方、新規の FOO が作成された場合、最も確実なのはFOOテーブルの挿入トリガーをかけることです。

トリガーを使うのは、たとえば ModifiedDate .

解決方法は?

トリガーに関する主な問題点は

  • 完全にグローバルである - テーブルアクティビティーのコンテキストに関係なく適用される。
  • 意図しない(そして非常に不可思議な)結果をもたらすまで、その存在を忘れてしまいがちです。

これは、適切な状況で慎重に使用する必要があるということです。私の経験では、関係整合性の問題(時には宣言的に得られるよりも細かい粒度で)に限られ、通常はビジネスやトランザクションの目的では使用されません。YMMV。