本文へスキップ

トリガーとは?

とりがー

データベースのトリガーとは、テーブルへのデータ操作を契機に自動的に実行されるSQL処理の仕組みです。

データベースにおけるトリガー(Trigger)とは、テーブルに対するINSERT・UPDATE・DELETEなどのデータ操作が行われたタイミングを契機(トリガー)として、あらかじめ定義した処理を自動的に実行する仕組みです。アプリケーション側のコードに手を加えることなく、DB側で自動的に副作用を発生させられます。

トリガーは発火タイミングによって分類されます。

  • BEFORE トリガー:データ操作が実行される前に動作し、入力値の変換や検証に使われる
  • AFTER トリガー:データ操作が完了した後に動作し、ログ記録や関連テーブルの更新に使われる
  • INSTEAD OF トリガー:ビューへの操作を別の処理に置き換える(一部DBのみ対応)

代表的な用途としては、更新日時の自動記録、監査ログへの書き込み、参照整合性の補完、キャッシュテーブルの自動更新などがあります。

ただし、トリガーは処理が暗黙的に実行されるため、動作の追跡が難しくなりがちです。過度な利用はデバッグを困難にし、パフォーマンスにも影響します。ビジネスロジックはアプリケーション層で管理し、トリガーは補助的な自動化に留めるのが一般的なベストプラクティスです。

使い方・例文

ユーザーが商品を購入するたびに在庫数を自動的に減らしたい場合、注文テーブルへのINSERT後にAFTERトリガーを設定することで、アプリケーション側の処理を増やさずに在庫管理テーブルを自動更新できます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語