sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur infogar jag i en tabell värden från två arrayer i Postgres?

Din rollbesättning är fel, du kan inte ångra text .

Försök med

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

Observera att denna form av urval beter sig konstigt om båda arrayerna inte är lika långa.

Unnest-funktionen i postgres 9.4+ låter dig utöka flera arrayer med en array per utdatakolumn:

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


  1. ändra kolumn från tid med tidszon till tidsstämpel

  2. Jämförelse av Oracle UCP, C3P0 och HikariCP

  3. använd samma trigger för olika tabeller

  4. Skillnaden mellan implicit och explicit transaktion