Postgresql Postgres:pg_restore/pg_转储表id以外的所有内容

Postgresql Postgres:pg_restore/pg_转储表id以外的所有内容,postgresql,pg-dump,pg-restore,Postgresql,Pg Dump,Pg Restore,目前我正在做一些类似的事情: pg_dump -a -O -t my_table my_db > my_data_to_import.sql 我真正想要的是能够只导入/导出数据,而不会与我的autoid字段发生冲突或覆盖现有数据 也许我把整个过程想错了 您可以与列列表一起使用,仅从一个表中转储和恢复数据。例如: COPY my_table (column1, column2, ...) TO 'yourdumpfilepath'; COPY my_table (column1, colu

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

pg_dump -a -O -t my_table my_db > my_data_to_import.sql
我真正想要的是能够只导入/导出数据,而不会与我的autoid字段发生冲突或覆盖现有数据

也许我把整个过程想错了

您可以与列列表一起使用,仅从一个表中转储和恢复数据。例如:

COPY my_table (column1, column2, ...) TO 'yourdumpfilepath';
COPY my_table (column1, column2, ...) FROM 'yourdumpfilepath';
OID是其中一种。例如,它不包括在从my_表中选择*中,您需要使用从my_表中选择oid。OID与中与其他列一起创建的普通id列不同。并非每个表都有OID列。选择选项。若将其设置为off,那个么可能表中并没有OID列,但即使如此,仍然可以使用OID选项创建OID为的表。建议不要将OID用作表的列,这就是为什么在PostgreSQL 8.1之前将带有OID的默认_设置为off的原因

pg_dump --insert -t TABLENAME DBNAME > fc.sql
       cat fc.sql | sed -e 's/VALUES [(][0-9][0-9],/VALUES (/g'|sed -e 's/[(]id,/(/g' > fce.sql
       psql -f fce.sql DBNAME

这会将包含列的表转储到fc.sql中,然后使用sed删除id和与其关联的值

,并在没有对象id的情况下导入/导出数据。我可以使用OID开关吗?@Paperino:是的,复制时有OID布尔选项。OID与我试图排除的内容相同吗?对于表格书籍,我的id字段是“id”?是否必须手动定义所有列?