トリガーとは?
とりがー
データベースのトリガーとは、テーブルへのデータ操作を契機に自動的に実行されるSQL処理の仕組みです。
データベースにおけるトリガー(Trigger)とは、テーブルに対するINSERT・UPDATE・DELETEなどのデータ操作が行われたタイミングを契機(トリガー)として、あらかじめ定義した処理を自動的に実行する仕組みです。アプリケーション側のコードに手を加えることなく、DB側で自動的に副作用を発生させられます。
トリガーは発火タイミングによって分類されます。
- BEFORE トリガー:データ操作が実行される前に動作し、入力値の変換や検証に使われる
- AFTER トリガー:データ操作が完了した後に動作し、ログ記録や関連テーブルの更新に使われる
- INSTEAD OF トリガー:ビューへの操作を別の処理に置き換える(一部DBのみ対応)
代表的な用途としては、更新日時の自動記録、監査ログへの書き込み、参照整合性の補完、キャッシュテーブルの自動更新などがあります。
ただし、トリガーは処理が暗黙的に実行されるため、動作の追跡が難しくなりがちです。過度な利用はデバッグを困難にし、パフォーマンスにも影響します。ビジネスロジックはアプリケーション層で管理し、トリガーは補助的な自動化に留めるのが一般的なベストプラクティスです。
使い方・例文
ユーザーが商品を購入するたびに在庫数を自動的に減らしたい場合、注文テーブルへのINSERT後にAFTERトリガーを設定することで、アプリケーション側の処理を増やさずに在庫管理テーブルを自動更新できます。
この用語をシェア
最終更新: