sql >> Databáze >  >> RDS >> PostgreSQL

Jaký je nejlepší způsob, jak zkopírovat podmnožinu řádků tabulky z jedné databáze do druhé v Postgresu?

Zdroj:

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

Cíl:

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

To předpokládá, že mytable má stejné schéma a pořadí sloupců ve zdroji i v cíli. Pokud tomu tak není, můžete zkusit STDOUT CSV HEADER a STDIN CSV HEADER místo STDOUT a STDIN , ale nezkoušel jsem to.

Pokud máte v mytable nějaké vlastní spouštěče, možná je budete muset při importu zakázat:

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


  1. Oracle, PDO_OCI vs OCI8

  2. AT TIME ZONE – nová oblíbená funkce v SQL Server 2016

  3. Chování NOT LIKE s hodnotami NULL

  4. mezisoučet a součet pro řetězce