ストアドファンクション・トリガーの作成

ファンクション作成言語の確認とインストール

確認

 select * from pg_language;

インストール

シェルで。

 createlang -h 127.0.0.1 -d mydb -U taro plpgsql

ファンクション作成

 DROP FUNCTION myfunc();
 CREATE FUNCTION myfunc() RETURNS TRIGGER AS
 '
 DECLARE ts TIMESTAMP;
 BEGIN
    ts = ''now'';
    INSERT INTO t2 VALUES (new.val, ts);
    RETURN new;
 END;
 '
 LANGUAGE 'plpgsql'
 ;

トリガー作成

 DROP TRIGGER mytrigger ON t1;
 CREATE TRIGGER mytrigger
   BEFORE INSERT OR UPDATE ON t1 FOR EACH ROW
   EXECUTE PROCEDURE myfunc()
 ;

これでテーブルT1にトリガーが設定された。T1に1件インサートすると、その値とその時の日付がテーブルT2に記録される。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS