クラス定義でのトリガの構文
トリガ定義の構造を説明します。トリガ定義に関する一般情報へのリンクは、"トリガ定義" を参照してください。
概要
トリガは、特定のイベントが InterSystems SQL で発生したときに実行されるコード・セグメントです。InterSystems IRIS は INSERT コマンド、UPDATE コマンド、DELETE コマンドの実行をベースにしたトリガをサポートします。トリガ定義により、指定されたコードは関連するコマンドが実行される直前、または直後に実行されます。各イベントは、実行順序が指定されていれば複数のトリガを持つことができます。
トリガ定義は永続クラスに追加できます。他のクラスでは意味がありません。
詳細
トリガ定義の構造は以下のとおりです。
/// description
Trigger name [ keyword_list ]
{ implementation }
以下は、この指定の説明です。
-
description (オプション) は、クラス・リファレンスでの表示を意図しています。description は既定ではブランクです。"クラス・ドキュメントの作成" を参照してください。
-
name (必須) はトリガの名前です。これは、有効なクラス・メンバ名で、かつ他のクラス・メンバ名と重複しないものである必要があります。
-
keyword_list (必須) は、さらにトリガを定義するキーワードのコンマ区切りリストです。
すべてのキーワードは、"トリガの構文とキーワード" を参照してください。
-
implementation (必須) は、トリガの起動時に実行するコードを定義したゼロ行以上のコードです。
例
/// This trigger updates the LogTable after every insert
Trigger LogEvent [ Event = INSERT, Time = AFTER ]
{
// get row id of inserted row
NEW id
SET id = {ID}
// INSERT value into Log table
&sql(INSERT INTO LogTable (TableName, IDValue) VALUES ('MyApp.Person', :id))
}