トリガーの作成

Cview からトリガーを作成するには、次のいずれかの操作を行ないます。

右側に「トリガー」パネルが表示されます。

「トリガー」パネルのタブを使用して、トリガー定義を作成します。

「トリガー」タブ

  1. 名前フィールドにトリガーの名前を入力します。
  2. スキーマ・フィールドで、スキーマを選択します。 SYS 以外の任意のスキーマを選択できます。
  3. イベント・フィールドで、 トリガーの対象となるアクションを選択します。
  4. 起動タイミング・フィールドで、 トリガーがイベントの BEFORE (前) か、AFTER (後) かを選択します。
  5. フィールドで、 トリガーが作用する表を選択します。
  6. トリガー・アクション・フィールドで、 トリガーが実行するステートメントを指定します。 トリガー・アクションには、Java メソッド呼び出しがあるステートメントも含め、 任意の SQL-J ステートメントを指定できます。例:

    UPDATE CustomizedTours SET getTotalCost =
    customized_tour::getTotalCost()

    注: トリガー・アクションで、 ステップ 5 で指定した表以外の表のデータベース・オブジェクトを参照するように 設定することもできます。ただし、参照先のデータベース・オブジェクトが除去されると、そのトリガーは無効になります。

    注: トリガー・アクションには、 動的パラメーターを組み込むことができない、トリガーが定義された表を変更、除去することはできない、 などの制約があります。このような制約事項の全リストについては、Cloudscape Developer's Guide を参照してください。

「オプション」タブ

オプション・タブでは、 オプションとして、トリガーの参照情報を指定します。参照情報を指定するのは、特にトリガー・アクションが、 トリガーを起動したデータベース・イベントによって変更されるデータを参照する場合です。 トリガーが元の値 (変更前の値) を必要とするのか、新しい値 (変更後の値) を必要とするのか 指定する必要があります。

  1. 条件となるイベントが「UPDATE」文節の場合、 オプション・タブの上部に更新される表の列リストが表示されます。 更新時にトリガーを起動する列を選択します (複数選択をする場合は、Shift キーを押しながらクリック、またはポイントします)。
  2. オプションとして、参照フィールドに、 OLD または NEW の遷移変数を指定します。この値は、トリガー・アクションが、その条件となる イベントによって更新される表または行を参照する場合に使用されます。OLD を指定すると、 変更前の表または行の値を参照し、NEW を指定すると変更後の値を参照します。

    注: 行または表を INSERT するトリガーでは、 元の行または表を参照できないため、OLD は指定できません。行または表を DELETE するトリガーでは、 変更後の行または表を参照できないため、NEW は指定できません。

    注: ステップ 3 から 5 までは、 このフィールドに値を指定する場合にのみ該当する操作です。

  3. 参照タイプ・フィールドで、 参照対象が新旧の ROW (行) または TABLE (表) のいずれかなのかを選択します。
  4. 別名参照フィールドに、オプションとして NEW または OLD 遷移変数に対するエイリアス、すなわち相関名を指定します。独自のエイリアスを指定することも、 デフォルトの識別子 AREFERENCE をそのまま使うこともできます。

    「別名参照」は、デフォルトの変数名「OLD」または「NEW」を使用したくない場合に指定します。 たとえば、DELETE オペレーションで、OLD 値を参照する行トリガーが起動する場合、 「OLD」に代えてエイリアス「DELETEDROW」を指定できます。エイリアスをこのように指定すれば、 トリガー・アクション・ステートメントで「DELETEDROW」を使用できます。

  5. 起動対象フィールドで、トリガーの種類が「行」か「ステートメント」かを指定します。
  6. オプション・タブの下部で、 トリガーを使用可能にするチェック・ボックスを切り替えると、 トリガーが使用可能、または使用不可になります。デフォルトでは、トリガーは使用可能になっています。

SQL タブ

SQL タブには、トリガー作成テキスト、 トリガーを使用可能または使用不可にするステートメント、およびトリガーを除去するステートメントが表示されます。