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 [])