Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

トリガ定義

トリガ定義の構造を説明します。

概要

トリガは、特定のイベントが 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))
 
}

関連項目

FeedbackOpens in a new tab