温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

postgresql怎么导出表数据

发布时间:2026-10-18 06:29:08 来源:亿速云 阅读:92 作者:小樊 栏目:数据库

在 PostgreSQL 中导出表数据,常见方式有以下几种,按使用场景给你总结一下:


一、使用 COPY 命令(最常用,速度快)

1. 导出为 CSV(推荐)

COPY 表名 TO '/path/to/file.csv' WITH (FORMAT csv, HEADER true);

示例:

COPY users TO '/tmp/users.csv' WITH (FORMAT csv, HEADER true);

⚠️ 注意:

  • 路径必须是 PostgreSQL 服务器能访问的路径
  • 需要有服务器写权限

2. 导出为文本 / 二进制

COPY 表名 TO '/path/to/file.txt';

3. 只导出查询结果

COPY (SELECT * FROM users WHERE age > 18) TO '/tmp/adult_users.csv' WITH (FORMAT csv, HEADER true);

二、使用 psql 客户端导出(不需要服务器权限)

1. 导出 CSV(常用)

psql -h 主机 -U 用户名 -d 数据库名 \
  -c "COPY 表名 TO STDOUT WITH (FORMAT csv, HEADER true)" > file.csv

示例:

psql -U postgres -d testdb \
  -c "COPY users TO STDOUT WITH (FORMAT csv, HEADER true)" > users.csv

2. 使用 \copy(在 psql 内)

\copy 表名 TO 'local_file.csv' WITH (FORMAT csv, HEADER true);

✅ 文件写在本地客户端机器


三、使用 pg_dump 导出表数据(含结构或仅数据)

1. 导出整张表(结构和数据)

pg_dump -h 主机 -U 用户名 -d 数据库名 -t 表名 > table.sql

2. 只导出数据(不含建表语句)

pg_dump -h 主机 -U 用户名 -d 数据库名 -t 表名 --data-only > table_data.sql

3. 导出为 CSV(间接)

pg_dump -t 表名 数据库名 | psql 目标库

四、导出为 INSERT 语句(方便迁移)

pg_dump -h 主机 -U 用户名 -d 数据库名 -t 表名 --column-inserts > insert.sql

五、常见选择建议

场景 推荐方式
大数据量导出 COPY
本地导出 \copy
迁移数据库 pg_dump
人工查看 CSV

如果你告诉我:

  • 是否在服务器本机
  • 导出格式(CSV / SQL / INSERT)
  • 数据量大小

我可以给你更精确的建议。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手