Awardsという名前のテーブルがあります。テーブルアワードの挿入ごとに異なるテーブルを更新するトリガーをPostgreSQLにマウントするにはどうすればよいですか?
ここには、table1
およびtable2
という名前の2つのテーブルがあります。トリガーを使用して、table2
への挿入時にtable1
を更新します。
テーブルを作成する
CREATE TABLE table1
(
id integer NOT NULL,
name character varying,
CONSTRAINT table1_pkey PRIMARY KEY (id)
)
CREATE TABLE table2
(
id integer NOT NULL,
name character varying
)
トリガー関数
CREATE OR REPLACE FUNCTION function_copy() RETURNS TRIGGER AS
$BODY$
BEGIN
INSERT INTO
table2(id,name)
VALUES(new.id,new.name);
RETURN new;
END;
$BODY$
language plpgsql;
トリガー
CREATE TRIGGER trig_copy
AFTER INSERT ON table1
FOR EACH ROW
EXECUTE PROCEDURE function_copy();
PL/PgSQLトリガーのドキュメント が必要です。これは、特にこのケースについてのみ説明しています。一般的な トリガーに関するドキュメント も役立つ場合があります。
これには、BEFORE
またはAFTER
トリガーを使用できます。私はおそらくAFTER
トリガーを使用して、挿入されている行の最終バージョンをトリガーが確認できるようにします。あなたが欲しいFOR EACH ROW
、 もちろん。