sql >> Databasteknik >  >> RDS >> PostgreSQL

PL/pgSQL Array av rader

Med dagens PostgreSQL kan du förenkla en sådan funktion.
Testinställning:

CREATE TABLE tbl1 (id int, value text);

Inget behov av att skapa en typ explicit i det här fallet (om typen är baserad på en tabellrad), skapas den implicit för varje tabell.
Funktion:

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;

Ring:

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

Notera ingångssyntaxen för en array av rader!



  1. Percona Live Dublin - Sammanfattning av evenemanget och våra sessioner

  2. Hur man begränsar SHOW TABLES-frågan

  3. Django Rest Framework paginering extremt långsam räkning

  4. Hur kan jag aktivera den federerade motorn i mysql efter installationen?