sql >> Databáze >  >> RDS >> PostgreSQL

PL/pgSQL Pole řádků

S moderním PostgreSQL můžete takovou funkci zjednodušit.
Testovací nastavení:

CREATE TABLE tbl1 (id int, value text);

V tomto případě není nutné vytvářet typ explicitně (pokud je typ založen na řádku tabulky), je vytvořen pro každou tabulku implicitně.
Funkce:

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;

Volejte:

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

Všimněte si vstupní syntaxe pro pole řádků!



  1. Apache NiFi

  2. Klauzule Go a IN v Postgresu

  3. Začínáme s Shareplexem ve Windows na AWS, část 1

  4. Vytvoření tabulky MYSQL s výchozí hodnotou (výrazem) do sloupce