16

私は最近 PostgreSQL をいじっていますが、単一のテーブルをバックアップおよび復元する方法を理解するのに苦労しています。

別のサーバーにコピーするために、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...

自動インクリメント列のシーケンスがダンプ ファイルに含まれていないようです。それを含めるにはどうすればよいですか?

4

1 に答える 1

24

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

シーケンスがわからない場合は\d yourtable、psql でリストできます。シーケンスがある行に次のようなものが表示されます。nextval('yourtable_id_seq'::regclass')

次に、コマンドラインから、pgdump -t yourtable_id_seq

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

于 2011-01-06T02:19:06.103 に答える