Antworten:
Verwenden Sie --tablediese Option, um anzugeben, pg_dumpwelche Tabelle gesichert werden muss:
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename dbname
psql -U username -d database -1 -f your_dump.sql
--ignore-version. Prashant Kumars Antwort, die einfacher ist, hat für mich funktioniert.
Wenn Sie auf Ubuntu sind,
sudo su postgrespg_dump -d <database_name> -t <table_name> > file.sqlStellen Sie sicher , dass Sie den Befehl ausführen , wo der postgresBenutzer Schreibrechte besitzen (Beispiel: /tmp)
Bearbeiten
Wenn Sie die SQL-Datei auf einem anderen Computer sichern möchten, müssen Sie möglicherweise die Eigentümerinformationen überspringen, die in der SQL-Datei gespeichert werden.
Sie können verwenden pg_dump --no-owner -d <database_name> -t <table_name> > file.sql
pg_dump -d <database_name> > file.sql
pg_dump -t <table_name> <database_name> > file.sql
pg_dump -h localhost -p 5432 -U postgres -d mydb -t my_table> backup.sql
Sie können die Sicherung einer einzelnen Tabelle durchführen, aber ich würde vorschlagen, die Sicherung der gesamten Datenbank durchzuführen und dann die gewünschte Tabelle wiederherzustellen. Es ist immer gut, eine Sicherung der gesamten Datenbank zu haben.
max(id)in meiner Tabelle zu aktualisieren . Dies ist die Antwort, die funktioniert hat, und ich bin zuversichtlich, dass ich sie beim Betrachten des generierten SQL wiederherstellen könnte.
Wenn Sie eine grafische Benutzeroberfläche bevorzugen, können Sie pgAdmin III (Linux / Windows / OS X) verwenden. Klicken Sie einfach mit der rechten Maustaste auf die Tabelle Ihrer Wahl und dann auf "Backup". Es wird ein pg_dumpBefehl für Sie erstellt.
Als Ergänzung zu Frank Heikens Antwort sollten Sie das Flag angeben , wenn Sie INSERTstattdessen Anweisungen verwenden möchtencopy from stdin--inserts
pg_dump --host localhost --port 5432 --username postgres --format plain --verbose --file "<abstract_file_path>" --table public.tablename --inserts dbname
Beachten Sie, dass ich die --ignore-versionFlagge weggelassen habe, weil sie veraltet ist.
pg_restore --host localhost --port 5432 --username postgres --dbname "anydb" --table public.tablename -Ft --verbose "/path/filename.backup"aber es kam heraus:pg_restore: [tar archiver] corrupt tar header found in --