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

Hvad er den bedste måde at kopiere et undersæt af en tabels rækker fra en database til en anden i Postgres?

Kilde:

psql -c "COPY (SELECT * FROM mytable WHERE ...) TO STDOUT" > mytable.copy

Destination:

psql -c "COPY mytable FROM STDIN" < mytable.copy

Dette forudsætter, at mytable har samme skema og kolonnerækkefølge i både kilden og destinationen. Hvis dette ikke er tilfældet, kan du prøve STDOUT CSV HEADER og STDIN CSV HEADER i stedet for STDOUT og STDIN , men jeg har ikke prøvet det.

Hvis du har nogen tilpassede triggere på mytable, skal du muligvis deaktivere dem ved import:

psql -c "ALTER TABLE mytable DISABLE TRIGGER USER; \
         COPY mytable FROM STDIN; \
         ALTER TABLE mytable ENABLE TRIGGER USER" < mytable.copy


  1. Fatal fejl opstået under udførelse af kommando. mysql-connector .net

  2. hvordan får man vist fuld lagret procedurekode?

  3. Ressource-id #5:MySQL

  4. SQL Backup Recovery Tool to Repair Damaged SQL Backup - Produktanmeldelse - Et gæsteindlæg af Daniel Jones