A good way is to use a RETURNING id. Here is a quick example of using PL / pgSQL:
DECLARE nivel1 RECORD; resultId BIGINT; BEGIN FOR nivel1 IN SELECT * FROM primary_table LOOP INSERT INTO second_table(id, field2, field3) VALUES (DEFAULT, "value2", "value3") RETURNING id INTO resultId; RAISE NOTICE 'Inserted id: %s', quote_literal(resultId); END LOOP; RETURN; END
It works for me!
hermeslm
source share