PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Jaki jest najlepszy sposób kopiowania podzbioru wierszy tabeli z jednej bazy danych do drugiej w Postgresie?

Źródło:

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

Miejsce docelowe:

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

Zakłada się, że mytable ma ten sam schemat i kolejność kolumn zarówno w źródle, jak i miejscu docelowym. Jeśli tak nie jest, możesz spróbować STDOUT CSV HEADER i STDIN CSV HEADER zamiast STDOUT i STDIN , ale nie próbowałem.

Jeśli masz jakieś niestandardowe wyzwalacze w mytable, może być konieczne wyłączenie ich podczas importu:

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. grupować według potrzebne w instrukcji SQL count(*)?

  2. Nie można połączyć PostgreSQL ze zdalną bazą danych za pomocą pgAdmin

  3. sql - grupuj według zakresów, aby uwzględnić zakresy bez wartości

  4. Heroku:PG::ConnectionBad:nie można połączyć się z serwerem:Połączenie odrzucone

  5. Niestandardowy numer tygodnia PostgreSQL - pierwszy tydzień zawierający 1 lutego