トリガーを使用すると、特定のイベント(テーブルへの挿入など)が発生したときにデータベース内の機能を実行できます。
mysqlについて具体的にコメントすることはできません。
注意:トリガーは非常に魅力的です。最初にトリガーを使用し始めると、あらゆる種類の問題に対する魔法の弾丸のように見えます。しかし、それらは「魔法の」ことを引き起こします。データベースを裏返しに知らないと、本当に奇妙なことが起こっているように見えることがあります(他のテーブルへの挿入、入力データの変更など)。トリガーとして実装する前に、代わりにスキーマの周囲でAPIの使用を強制することを真剣に検討します(できればデータベース内ですが、できない場合は外部で)。
まだトリガーを使用するもの
- 「date_created」フィールドと「date_last_edited」フィールドを追跡する
- 「ID」の挿入(Oracleでは自動IDフィールドがありません)
- 変更履歴の保持
トリガーを使用したくないもの
- ビジネスルール/ロジック
- データベースの外部に接続するもの(Webサービス呼び出しなど)
- アクセス制御
- トランザクションではないもの(トリガーで行うことはすべて、トランザクションでロールバックできる必要があります)