0
Postgresを初めて使用しています。私の問題は、新しいテーブルの新しい行を「ターゲットテーブル」に挿入したい場合です。新しい行が「ソーステーブル」に挿入されています。 正確にそれを行うためのトリガーを書いたが、ソースが例えばの新しい行で挿入されると、トリガーは7x7 = 49行をターゲットに挿入します。次に、を3つの新しい行をソースに挿入すると、ターゲットは49 + 3x10 = 79になります。 私は間違って何をしていますか?複数の行で別のテーブルが挿入されている場合のPostgresテーブルへのデータの挿入
トリガ機能:
CREATE OR REPLACE FUNCTION public.rec_insert()
RETURNS trigger AS
$BODY$
BEGIN
INSERT INTO target_table ("TIME","REGION","CITY","DISTRICT","Population")
SELECT NEW."TIME",NEW."REGION",NEW."CITY",NEW."DISTRICT",(100*(NEW."SAMPLES_MALE_Available")/(NULLIF((NEW."Total_AVAIL"-NEW."Female_AVAIL"),0)))
FROM source_table;
RETURN NEW;
END;
$BODY$
LANGUAGE plpgsql;
そして、私のトリガーは、あなたがFROM
を省略しなければなりません
CREATE TRIGGER ins_same_rec
AFTER UPDATE
ON source_table
FOR EACH ROW
EXECUTE PROCEDURE rec_insert();
ありがとうございます。だから以前は、各行にテーブル全体を挿入するようなものでした。それは今や意味をなさない。 – MoChen