目前,我正在做类似的事情:

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

我真正想要的是能够仅导入/导出数据,而不会引起与autoid字段的冲突或覆盖现有数据。

也许我在考虑整个过程错了吗?

最佳答案

您可以将COPY与列列表一起使用,以仅转储和恢复来自一个表的数据。例如:

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

OID是system columns之一。例如,它不包含在SELECT * FROM my_table中(您需要使用SELECT oid,* FROM my_table)。 OID与在CREATE TABLE中与其他列一起创建的普通id列不同。并非每个表都有OID列。检查default_with_oids选项。如果将其设置为off,则probalby在表中没有OID列,但是即使如此,您仍然可以使用WITH OIDS选项使用OID创建表。建议不要将OID用作表的列(这就是在PostgreSQL 8.1之前将default_with_oids设置为off的原因)。

关于postgresql - Postgres : pg_restore/pg_dump everything EXCEPT the table id's for a table,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6228637/

10-15 21:46