- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- PostgreSQL/ストアドプロシージャ/トリガプロシージャの作成 へ行く。
- 1 (2007-08-31 (金) 03:47:30)
- 2 (2007-08-31 (金) 04:04:14)
- 3 (2011-06-11 (土) 16:52:03)
- 4 (2011-12-30 (金) 21:38:51)
- 5 (2011-12-31 (土) 13:14:52)
ストアドファンクション・トリガーの作成
ファンクション作成言語の確認とインストール
確認
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に記録される。