आधुनिक समय के पोस्टग्रेएसक्यूएल के साथ आप ऐसे फ़ंक्शन को सरल बना सकते हैं।
टेस्ट सेटअप:
CREATE TABLE tbl1 (id int, value text);
इस मामले में स्पष्ट रूप से एक प्रकार बनाने की आवश्यकता नहीं है (यदि प्रकार तालिका पंक्ति पर आधारित है), यह प्रत्येक तालिका के लिए निहित रूप से बनाया गया है।
Function:
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)"}');
पंक्तियों की एक सरणी के लिए इनपुट सिंटैक्स पर ध्यान दें!