PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Какъв е най-добрият начин да копирате подмножество от редове на таблица от една база данни в друга в Postgres?

Източник:

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

Дестинация:

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

Това предполага, че mytable има една и съща схема и ред на колоните както в източника, така и в дестинацията. Ако това не е така, можете да опитате STDOUT CSV HEADER и STDIN CSV HEADER вместо STDOUT и STDIN , но не съм го пробвал.

Ако имате персонализирани тригери на mytable, може да се наложи да ги деактивирате при импортиране:

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да гарантирам, че материализираният изглед винаги е актуален?

  2. Как работи UNION в PostgreSQL

  3. Текстово търсене в Django с частично съвпадение на изречения, актуализация на django3

  4. Rails:FATAL - Удостоверяването на партньора не бе успешно за потребител (PG::Error)

  5. Рефакторни функции, така че да могат да се използват в CTE