5

現在、私は次のようなことをしています:

pg_dump -a -O -t my_table my_db > my_data_to_import.sql

私が本当に望んでいるのは、 autoid フィールドと競合したり、既存のデータを上書きしたりせずに、データだけをインポート/エクスポートできるようにすることです。

多分私はプロセス全体について間違って考えていますか?

4

2 に答える 2

5

列リストでCOPYを使用して、1 つのテーブルのデータのみをダンプおよび復元できます。例えば:

COPY my_table (column1, column2, ...) TO 'yourdumpfilepath';
COPY my_table (column1, column2, ...) FROM 'yourdumpfilepath';

OID はシステム列の 1 つです。たとえば、 には含まれていませんSELECT * FROM my_table( を使用する必要がありますSELECT oid,* FROM my_table)。OID は、 CREATE TABLEの他の列とともに作成される通常の id 列と同じではありません。すべてのテーブルに OID 列があるわけではありません。default_with_oidsオプションを確認してください。オフに設定されている場合、テーブルに OID 列がない可能性がありますが、その場合でも、WITH OIDSオプションを使用して OID でテーブルを作成できます。OID をテーブルの列として使用しないことをお勧めします (PostgreSQL 8.1 より前では default_with_oids が off に設定されているのはそのためです)。

于 2011-06-03T15:01:22.087 に答える