Met het moderne PostgreSQL kun je zo'n functie vereenvoudigen.
Testopstelling:
CREATE TABLE tbl1 (id int, value text);
Het is in dit geval niet nodig om expliciet een type aan te maken (als het type is gebaseerd op een tabelrij), wordt het impliciet voor elke tabel gemaakt.
Functie:
CREATE FUNCTION f_insert_rows_into_tbl1(tbl1[])
RETURNS VOID AS
$BODY$
INSERT INTO tbl1 (id,value)
SELECT (a).*
FROM (SELECT unnest($1) AS a) x;
$BODY$ LANGUAGE sql;
Bel:
SELECT f_insert_rows_into_tbl1('{"(1,foo)","(2,bar)"}');
Let op de invoersyntaxis voor een reeks rijen!