3

使用 psql 有一种方法可以执行 select 语句,其中输出是插入语句的列表,以便我可以在其他地方执行这些插入语句。

SELECT * FROM foo where some_fk=123; 

应该输出

INSERT INTO foo 
(column1,column2,...) VALUES 
('abc','xyyz',...),
('aaa','cccc',...),
 .... ; 

我可以还原到一个文件export.sql,然后我可以用我的目标将其导入到一个文件中,psql -f export.sql 我的目标是将 select 语句的结果以我可以导入另一个具有完全相同表结构的数据库实例的格式移动。

4

1 回答 1

2

看看--inserts选项pg_dump

pg_dump -t your_table --inserts -f somefile.txt your_db

如有必要,编辑生成的文件。

对于子集,正如 IgorRomanchenko 所提到的,您可以将 COPY 与 SELECT 语句一起使用。

复制为 CSV 的示例。

COPY (select * from table where foo='bar') TO '/path/to/file.csv' CSV HEADER
于 2013-08-28T18:56:23.280 回答