sql >> Database >  >> RDS >> PostgreSQL

Wat is de beste manier om een ​​subset van de rijen van een tabel van de ene database naar de andere in Postgres te kopiëren?

Bron:

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

Bestemming:

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

Dit veronderstelt dat mytable hetzelfde schema en dezelfde kolomvolgorde heeft in zowel de bron als het doel. Als dit niet het geval is, kunt u STDOUT CSV HEADER proberen en STDIN CSV HEADER in plaats van STDOUT en STDIN , maar ik heb het niet geprobeerd.

Als u aangepaste triggers op mytable heeft, moet u deze mogelijk uitschakelen bij het importeren:

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


  1. Waar worden de JPA @Table annotatiecatalogus en schemavariabelen voor gebruikt?

  2. ORA-06550:Verkeerd nummer of type argumenten fout bij het aanroepen van een functie in een orakelpakket in ASP.NET

  3. Geaggregeerde query op 50M+ rijtabel in PostgreSQL

  4. Hoe inhoud van meerdere QSqlTableModels in één QTableView weergeven?