sql >> Base de Datos >  >> RDS >> PostgreSQL

Matriz de filas PL/pgSQL

Con PostgreSQL moderno, puede simplificar dicha función.
Configuración de prueba:

CREATE TABLE tbl1 (id int, value text);

No es necesario crear un tipo explícitamente en este caso (si el tipo se basa en una fila de la tabla), se crea implícitamente para cada tabla.
Función:

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;

Llamar:

SELECT f_insert_rows_into_tbl1('{"(1,foo)","(2,bar)"}');

¡Observe la sintaxis de entrada para una matriz de filas!