データベーストリガとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > データベーストリガの意味・解説 

データベーストリガ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2025/04/06 07:35 UTC 版)

データベーストリガは、に対するイベントに反応して自動的に実行される操作を意味する。トリガはデータ操作言語によるデータ状態の管理を自動化するために用いられる。トリガを利用することで、データ操作の限定、操作の記録、変更操作の監査などを行うことができる。

トリガの種類

トリガには大きく分けて「行トリガ」と「文トリガ」の2つの種類がある。

行トリガ
の中の影響を受けたそれぞれに対して実行される。変更前または変更後の行は OLD, NEW という擬似的な行変数を使って読み取ることができる。
文トリガ
INSERT, UPDATE, DELETE 文に対して一度だけ実行される。

また、トリガは以下の属性を持つ。

"BEFORE" または "AFTER"
トリガが実行されるタイミングを指定する。
"INSTEAD OF"
トリガを元の文の代わりに実行する。
"WHEN"
トリガを起動する条件式を指定する。

一般的に、トリガは以下の3つのイベントにより起動される。トリガでは SELECT 文によるデータ取得に影響を及ぼすことはできない。

  • INSERT (新しい行の挿入)
  • UPDATE (既存の行の変更) / UPDATE OF (既存の行の特定の列の変更)
  • DELETE (既存の行の削除)

Oracle のトリガ

Oracle Database では標準のトリガの他、Oracle 9i にて「スキーマレベルトリガ」と呼ばれる、スキーマの変更やユーザのログイン/ログオフに対するトリガが追加された。

  • INSERT
  • UPDATE
  • DELETE
  • AFTER CREATE
  • BEFORE/AFTER ALTER
  • BEFORE/AFTER DROP
  • BEFORE LOGOFF / AFTER LOGON

Microsoft SQL Server のトリガ

Microsoft SQL Server では標準のトリガの他、ビューに対して INSTEAD OF トリガを定義できる。また、Microsoft SQL Server 2005 にて データ定義言語 (DDL) トリガが追加された。 Microsoft SQL ServerのDDLトリガーで利用可能な全ての発動イベントのリストは、Microsoft Docsで入手可能である。[1]

PostgreSQL のトリガ

PostgreSQL はバージョン 6.2 (1997年) から標準トリガがサポートされている。さらにバージョン 8.4 で TRUNCATE イベント、9.0 で UPDATE OF, WHEN 句をサポートした。

  • INSERT
  • UPDATE / UPDATE OF
  • DELETE
  • TRUNCATE

10.0 で REFERENCING TABLE 句をサポートした。

11.0 で EXECUTE FUNCTION 句をサポートした。

14.0 で OR REPLACE 句をサポートした。

トリガにて実行される処理は直接記述せず、関数として与える。[2]

文法:

CREATE TRIGGER name { BEFORE | AFTER } { event [ OR ... ] }
    ON table [ FOR [ EACH ] { ROW | STATEMENT } ]
    [ WHEN (...) ] EXECUTE PROCEDURE funcname ( arguments )

MySQL のトリガ

MySQL はバージョン 5.0.2 にて標準トリガがサポートされた。

  • INSERT
  • UPDATE
  • DELETE

文法:

CREATE TRIGGER salary_trigger
    BEFORE UPDATE ON employee_table
    REFERENCING NEW ROW AS n, OLD ROW AS o
    FOR EACH ROW
    IF n.salary <> o.salary THEN
       ...
    END IF;

SQLite のトリガ

SQLite は、文トリガーではなく、行トリガーのみをサポートする。 SQLite ではサポートされていない更新可能なビューは、INSTEAD OF トリガーを使用してエミュレートできる。

文法:

CREATE [TEMP | TEMPORARY] TRIGGER [IF NOT EXISTS][database_name .] trigger_name
[BEFORE | AFTER | INSTEAD OF] {DELETE | INSERT | UPDATE  [OF column_name [, column_name]...]}
ON {table_name | view_name}
   [FOR EACH ROW] [WHEN condition is mandatory ]
BEGIN
   ...
END

脚注

  1. ^ DDLイベント - SQL Server”. 2025年1月3日閲覧。
  2. ^ PostgreSQL: Documentation: 17: CREATE TRIGGER”. 2025年2月20日閲覧。

外部リンク



このページでは「ウィキペディア」からデータベーストリガを検索した結果を表示しています。
Weblioに収録されているすべての辞書からデータベーストリガを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からデータベーストリガ を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「データベーストリガ」の関連用語

データベーストリガのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



データベーストリガのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのデータベーストリガ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2025 GRAS Group, Inc.RSS