PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie füge ich Werte aus zwei Arrays in Postgres in eine Tabelle ein?

Ihre Umwandlung ist falsch, Sie können text nicht entschachteln .

Versuchen Sie es mit

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

Beachten Sie, dass sich diese Form von select merkwürdig verhält, wenn beide Arrays nicht dieselbe Länge haben.

Mit der Unnest-Funktion in Postgres 9.4+ können Sie mehrere Arrays erweitern, indem Sie ein Array pro Ausgabespalte verwenden:

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