4
目前我正在做這樣的事情:Postgres的:pg_restore的/ pg_dump的一切,除了表ID的一個表
pg_dump -a -O -t my_table my_db > my_data_to_import.sql
我真正想要的是能夠導入/導出不僅僅是數據,而不會導致衝突與我的自動字段或覆蓋現有數據。
也許我在想整個過程是錯的?
目前我正在做這樣的事情:Postgres的:pg_restore的/ pg_dump的一切,除了表ID的一個表
pg_dump -a -O -t my_table my_db > my_data_to_import.sql
我真正想要的是能夠導入/導出不僅僅是數據,而不會導致衝突與我的自動字段或覆蓋現有數據。
也許我在想整個過程是錯的?
您可以使用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選項。如果設置爲關閉,則probalby表中沒有OID列,但即使如此,仍然可以使用WITH OIDS
選項創建包含OID的表格。建議不要將OID用作表列(這就是爲什麼在PostgreSQL 8.1之前將default_with_oids設置爲關閉的原因)。
要導入/導出沒有對象ID的數據,我可以使用OID開關嗎? – bdd 2011-06-03 15:06:20
@Paperino:是的,COPY有OIDS布爾選項。 – 2011-06-03 15:09:26
OID與我試圖排除的內容相同嗎? ID。對於一個表書籍,我的id字段是'id'?是否所有的列都必須手動定義? – bdd 2011-06-03 15:20:31