PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como insiro em uma tabela valores de duas matrizes no Postgres?


Seu elenco está errado, você não pode desaninhar text .

Tentar
INSERT INTO mytable (x, y)
  SELECT
    unnest('{x1, x2, x3}' :: TEXT []),
    unnest('{y1, y2, y3}' :: TEXT []);

Observe que essa forma de seleção se comporta de maneira estranha se ambas as matrizes não tiverem o mesmo comprimento.

A função unnest no postgres 9.4+ permite expandir vários arrays, usando um array por coluna de saída:
INSERT INTO mytable
  SELECT *
  FROM unnest('{x1, x2, x3}' :: TEXT [], '{y1, y2, y3, y4}' :: TEXT [])