sql >> Database >  >> RDS >> PostgreSQL

PL/pgSQL Reeks rijen

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!



  1. Hoe kan ik een datum instellen op NULL in Yii?

  2. SQLite in Android:buitenlandse sleutels en <tabelbeperking> verwacht

  3. hoe gepagineerd te worden selecteer op slick + postgresql

  4. PostgreSQL - DISTINCT ON en GROUP BY syntaxis