2011-01-05 4 views
9

私は最近、PostgreSQLを使いこなしており、単一のテーブルをバックアップして復元する方法を理解していません。pg_dumpはテーブルシーケンスを無視しますか?

データベース内の単一のテーブルをバックアップして別のサーバにコピーするために、pgadmin3を使用しました。私は、ファイル上にpg_restoreをしようとすると、私は順序が存在しないというエラーメッセージが出ます:

pg_restore: [archiver (db)] could not execute query: ERROR: relation "businesses_id_seq" does not exist 
    Command was: 
CREATE TABLE businesses (
    id integer DEFAULT nextval('businesses_id_seq'::regclass) NOT NULL, 
    name character varyin... 

ダンプ・ファイルは、私の自動インクリメント列の配列を含んでいなかったように見えます。どうすればそれを含めることができますか?

答えて

12

テーブルのみでダンプする - テーブルのみをダンプします。テーブルに加えてシーケンスを個別にダンプする必要があります。

あなたのシーケンスがわからない場合は、psqlに\d yourtableと記載できます。あなたはそれがどのように見えるのあなたの順序がある行の中で何かが表示されます、コマンドラインから次にnextval('yourtable_id_seq'::regclass')

http://www.postgresql.org/docs/9.0/static/app-pgdump.html

+0

pgdump -t yourtable_id_seqは、私が目-tフラグの後にカンマを指定することができれば、あなたが知っていますか?このように:pgdump -t mytable、mytabl_id_seq – demersus

+0

いいえ、複数の-tスイッチを指定できます。このように: pgdump -t mytable -t mytabl_id_seq – phord

関連する問題