使用psql有办法做一个select语句,其中输出是一个insert语句列表,这样我就可以在其他地方执行那些insert语句。
SELECT * FROM foo where some_fk=123;
应输出
INSERT INTO foo
(column1,column2,...) VALUES
('abc','xyyz',...),
('aaa','cccc',...),
.... ;
我可以重新发送文件说export.sql
然后我可以使用psql -f export.sql
导入该文件
我的目标是以一种格式移动导出select语句的结果,我可以将其导入具有完全相同表结构的另一个数据库实例。
答案 0 :(得分:1)
查看--inserts
pg_dump
选项
pg_dump -t your_table --inserts -f somefile.txt your_db
根据需要编辑生成的文件。
对于子集,正如IgorRomanchenko所提到的,您可以使用带有SELECT语句的COPY。
以CSV格式复制的示例。
COPY (select * from table where foo='bar') TO '/path/to/file.csv' CSV HEADER