現在、私は次のようなことをしています:
pg_dump -a -O -t my_table my_db > my_data_to_import.sql
私が本当に望んでいるのは、 autoid フィールドと競合したり、既存のデータを上書きしたりせずに、データだけをインポート/エクスポートできるようにすることです。
多分私はプロセス全体について間違って考えていますか?
現在、私は次のようなことをしています:
pg_dump -a -O -t my_table my_db > my_data_to_import.sql
私が本当に望んでいるのは、 autoid フィールドと競合したり、既存のデータを上書きしたりせずに、データだけをインポート/エクスポートできるようにすることです。
多分私はプロセス全体について間違って考えていますか?
列リストで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 に設定されているのはそのためです)。