0
我是Postgres的新手。我的問題是,當這些新行插入「源表」中時,我想在「目標表」中插入一些新行。 我寫了一個觸發器來做到這一點,但每當源插入與說7個新行然後觸發器插入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;
我的觸發是
CREATE TRIGGER ins_same_rec
AFTER UPDATE
ON source_table
FOR EACH ROW
EXECUTE PROCEDURE rec_insert();
感謝它的工作原理。所以早些時候,就像爲每一行插入整個表格一樣。它現在有道理。 – MoChen