PostgreSQL copy的用法

psql提供了\copy命令和copy

其中\copy是psql的客户端命令行,可以将表导出到本地的csv文件中,但是唯一不足的是不能跨行

如下测试所示

只能在一行中

sql 复制代码
test=# \copy (select * from poly100w) to 'd:\testdata\poly100w.csv' with csv header;
COPY 1189032

如果字段数量比较多,写在一行,非常不方便,不过可以使用以下两种方法解决

第一种 可以使用视图来解决这个问题,这样一行就可以解决。

sql 复制代码
test=# create view poly100w_view as select * from poly100w ;
CREATE VIEW
test=# \copy (select * from poly100w_view) to 'd:\testdata\poly100w.csv' with csv header ;
COPY 1189032

第二种,使用服务器端copy命令是可以换行的

copy是服务端命令,默认output出来的数据是放在服务器端目录中,可以使用如下语法放到客户端中

sql 复制代码
test=# copy
test-# (select
test(# objectid,globalid,gdb_geomattr_data,shape from poly100w)
test-# to stdout with csv header \g 'd:\\testdata\\poly100w.csv'
COPY 1189032

to stdout是将结果导入到标准输出 \g 是将标准输出重定义到文件中。

相关推荐
努力进修12 小时前
复杂查询性能优化:连接条件下推的代价模型设计与实践
数据库·sql·性能优化
原来是猿12 小时前
Linux-【文件系统上】
linux·服务器·数据库
小陳参上16 小时前
用Python创建一个Discord聊天机器人
jvm·数据库·python
changhong198617 小时前
如何在 Spring Boot 中配置数据库?
数据库·spring boot·后端
执笔画情ora19 小时前
Postgresql数据库管理-pg_xact
数据库·postgresql·oracle
南棱笑笑生19 小时前
20260310在瑞芯微原厂RK3576的Android14查看系统休眠时间
服务器·网络·数据库·rockchip
XDHCOM20 小时前
ORA-32152报错咋整啊,数据库操作遇到null number问题远程帮忙修复
服务器·数据库·oracle
专利观察员20 小时前
输配电行业创新转型实践:南宁迪**力有限公司的专利策略调整、专利检索工具采用
数据库·科技·专利·专利申请
jgyzl20 小时前
2026.3.9 Redis内存回收内存淘汰
数据库·redis·缓存
白露与泡影20 小时前
MySQL 时间类型选型避坑:timestamp 和 datetime 该怎么选?
数据库·mysql