現代のPostgreSQLを使用すると、このような機能を簡素化できます。
テストのセットアップ:
CREATE TABLE tbl1 (id int, value text);
この場合(型がテーブルの行に基づいている場合)、型を明示的に作成する必要はありません。型はすべてのテーブルに対して暗黙的に作成されます。
関数:
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;
電話:
SELECT f_insert_rows_into_tbl1('{"(1,foo)","(2,bar)"}');
行の配列の入力構文に注意してください!