在 PostgreSQL 中导出表数据,常见方式有以下几种,按使用场景给你总结一下:
COPY 命令(最常用,速度快)COPY 表名 TO '/path/to/file.csv' WITH (FORMAT csv, HEADER true);
示例:
COPY users TO '/tmp/users.csv' WITH (FORMAT csv, HEADER true);
⚠️ 注意:
COPY 表名 TO '/path/to/file.txt';
COPY (SELECT * FROM users WHERE age > 18) TO '/tmp/adult_users.csv' WITH (FORMAT csv, HEADER true);
psql 客户端导出(不需要服务器权限)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
\copy(在 psql 内)\copy 表名 TO 'local_file.csv' WITH (FORMAT csv, HEADER true);
✅ 文件写在本地客户端机器
pg_dump 导出表数据(含结构或仅数据)pg_dump -h 主机 -U 用户名 -d 数据库名 -t 表名 > table.sql
pg_dump -h 主机 -U 用户名 -d 数据库名 -t 表名 --data-only > table_data.sql
pg_dump -t 表名 数据库名 | psql 目标库
pg_dump -h 主机 -U 用户名 -d 数据库名 -t 表名 --column-inserts > insert.sql
| 场景 | 推荐方式 |
|---|---|
| 大数据量导出 | COPY |
| 本地导出 | \copy |
| 迁移数据库 | pg_dump |
| 人工查看 | CSV |
如果你告诉我:
我可以给你更精确的建议。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。