PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PL/pgSQL масив от редове

Със съвременния PostgreSQL можете да опростите такава функция.
Тестова настройка:

CREATE TABLE tbl1 (id int, value text);

В този случай няма нужда изрично да се създава тип (ако типът е базиран на ред от таблица), той се създава имплицитно за всяка таблица.
Функция:

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)"}');

Обърнете внимание на входния синтаксис за масив от редове!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres:изберете сумата от стойности и след това сумирайте това отново

  2. Динамичен одит на данни с тригер PostgreSQL

  3. gem install pg грешка:не може да разбере kern.osversion `14.0.0' на Yosemite w/ Ruby 2.1.5

  4. Как работи функцията Scale() в PostgreSQL

  5. Как мога да използвам UUID в SQLAlchemy?