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

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日閲覧。

外部リンク


データベーストリガ

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2020/11/12 16:10 UTC 版)

PL/SQL」の記事における「データベーストリガ」の解説

登録されている表に対して、行追加更新削除前後タイミング自動的に処理を走らせるPL/SQLブロック登録することができる。これをデータベーストリガと呼ぶ。処理されるデータ1件ずつ処理することができ、また変更前と変更後の値を使うことができる。起動条件細かく設定することも可能である。本来は「制約」定義で管理できない参照整合性管理するために用いるものである業務処理を暗黙組み込みすぎると、業務処理の変更があった場合他の応用プログラム挙動影響与えやすいため、注意して利用すべきであるエラー処理など考慮すべき点は多いが、非正規化した表の同期使用すると便利である。

※この「データベーストリガ」の解説は、「PL/SQL」の解説の一部です。
「データベーストリガ」を含む「PL/SQL」の記事については、「PL/SQL」の概要を参照ください。

ウィキペディア小見出し辞書の「データベーストリガ」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


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

辞書ショートカット

すべての辞書の索引

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

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

   

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



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

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

©2025 GRAS Group, Inc.RSS