PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Come inserisco in una tabella valori da due array in Postgres?

Il tuo cast è sbagliato, non puoi annullare l'annidamento di text .

Prova

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

Si noti che questa forma di selezione si comporta in modo strano se entrambi gli array non hanno la stessa lunghezza.

La funzione unnest in Postgres 9.4+ ti consente di espandere più array, utilizzando un array per colonna di output:

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