ページの先頭行へ戻る
Linkexpress Transactional Replication option V5.0L70 説明書
FUJITSU Software

A.3.3 Symfoware/pgsまたはPostgreSQLの場合

Symfoware/pgsまたはPostgreSQLにおける、トリガの利用方法および定義例を説明します。

A.3.3.1 利用方法

Symfoware/pgsまたはPostgreSQLにおけるトリガの利用方法を説明します。

格納データの加工(種別:BEFORE)

“NEW.”で修飾した列の値を加工し、その結果を同じ列へ代入します。

反映処理の迂回(種別:BEFORE)

“NEW.”で修飾した列の値を判定し、迂回条件を満たす場合に、エラー番号60999を返します。

A.3.3.2 定義例

Symfoware/pgsまたはPostgreSQLにおける、INSERT文に対するトリガの定義例を説明します。

格納データの加工(種別:BEFORE)

トリガの定義例

CREATE TRIGGER TRIG1 BEFORE INSERT ON RDB.TBL1
FOR EACH ROW EXECUTE PROCEDURE RDB.func1();

CREATE OR REPLACE FUNCTION RDB.func1() RETURNS trigger AS $func1$
BEGIN
NEW.ITEM1 := NEW.ITEM1*2; -- 加工
RETURN NEW;
END;
$func1$ LANGUAGE plpgsql;

トリガーを関数func1に関連付けます。
関数func1では、表TBL1の列ITEM1(NEW.ITEM1)を加工し、その結果を同じ列に代入します。

反映処理の迂回(種別:BEFORE)

トリガの定義例

CREATE TRIGGER TRIG1 BEFORE INSERT ON RDB.TBL1
FOR EACH ROW EXECUTE PROCEDURE RDB.func1();

CREATE OR REPLACE FUNCTION RDB.func1() RETURNS trigger AS $func1$
BEGIN
IF NEW.ITEM1 < 1 THEN
RAISE EXCEPTION SQLSTATE '60999';
END IF;
RETURN NEW;
END;
$func1$ LANGUAGE plpgsql;

トリガーを関数func1に関連付けます。
関数func1では、表TBL1の列ITEM1(NEW.ITEM1)を判定します。迂回条件を満たす場合、エラー番号60999を返してトリガを終了します。