トリガ定義
概要
トリガは、特定のイベントが Caché SQL で発生するときに実行されるコード・セグメントです。Caché は INSERT コマンド、UPDATE コマンド、DELETE コマンドの実行をベースにしたトリガをサポートします。トリガ定義により、指定されたコードは関連するコマンドが実行される直前、または直後に実行されます。各イベントは、実行順序が指定されていれば複数のトリガを持つことができます。
トリガ定義は永続クラスに追加できます。他のクラスでは意味がありません。
詳細
トリガ定義の構造は以下のとおりです。
/// description Trigger name [ keyword_list ] { code }
以下は、この指定の説明です。
-
description (オプション) は、クラス・リファレンスでの表示を意図しています。description は既定ではブランクです。"Caché オブジェクトの使用法" の “クラス・ドキュメントの作成” を参照してください。
-
name (必須) はトリガの名前です。これは、有効なクラス・メンバ名で、かつ他のクラス・メンバ名と重複しないものである必要があります。
-
keyword_list (オプション) は、さらにトリガを定義するキーワードのコンマ区切りリストです。
“Trigger キーワード” のセクションを参照してください。
-
code (必須) は、トリガの起動時に実行されるコードを定義する、ObjectScript コードのゼロ以上の行です。
例
/// 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))
}
関連項目
-
Caché SQL の使用法 の “トリガの使用法”
-
Caché オブジェクトの使用法 の “メソッド・ジェネレータとトリガ・ジェネレータの定義”
-
このドキュメントの “Trigger キーワード”
-
Caché プログラミング入門ガイド の “一般的なシステム制限” の “クラスの制限”