PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment insérer dans une table des valeurs de deux tableaux dans Postgres ?

Votre distribution est erronée, vous ne pouvez pas désimbriquer text .

Essayez

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

Notez que cette forme de select se comporte bizarrement si les deux tableaux n'ont pas la même longueur.

La fonction unnest dans postgres 9.4+ vous permet d'étendre plusieurs tableaux, en utilisant un tableau par colonne de sortie :

INSERT INTO mytable
  SELECT *
  FROM unnest('{x1, x2, x3}' :: TEXT [], '{y1, y2, y3, y4}' :: TEXT [])