ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PostgreSQL导入导出表格

2021-06-12 23:33:57  阅读:189  来源: 互联网

标签:txt PostgreSQL 表格 copy 导出 导入 scripts test COPY


PostgreSQL导入导出表格测试

  • 创建表
CREATE TABLE test_1(id int4,name text,create_time timestamp without time zone default clock_timestamp());

ALTER TABLE test_1 ADD PRIMARY KEY (id);
  • 插入数据
INSERT INTO test_1(id,name) SELECT n,n || '_francs' FROM generate_series(1,5000000) n;
  • 数据库命令
# 查看表属性
\d test_1

# 查看表大小
\dt+ test_1

# 查看指定索引大小
\di+ test_1_pkey

# 查看函数代码
\sf  ST_Overlaps(geometry, geometry)

# 设置查询结果输出
\x

# 显示SQL执行时间
\timing

# 反复执行当前SQL 1为秒
\watch 1
  • 查询
SELECT * FROM test_1 LIMIT 1;

COPY命令导入导出数据

COPY 命令是从数据库服务端主机读取或写入文件数据

  • 表格导出为txt
COPY public.test_1 TO '/data/pg/scripts/test_1.txt';
  • txt文件导入表格
COPY public.test_2 FROM '/data/pg/scripts/test_1.txt';
  • 表格导出为csv
COPY public.test_1 TO '/data/pg/scripts/test_1.csv' WITH csv header;
  • 到处一部分数据
COPY (SELECT * FROM test_1 WHERE id=1) TO '/data/pg/scripts/test_1_1.txt';

\copy元命令导入导出数据

\copy 元命令从psql 客户端住距读取或写入文件数据,并且\copy 不需要超级用户权限

数据表的所有者必须是登陆用户

mac客户端

# 进入postgres的bin目录cd /Library/PostgreSQL/13/bin# psql连接数据库./psql -h 192.168.1.41 -p 5432 gis gisuser#导出数据\copy test_1 to '/Users/sungang/Documents/data/scripts/test_1.txt';# 导入数据库\copy test_3 FROM '/Users/sungang/Documents/data/scripts/test_1.txt';

总结

从性能上看,大数据量导出到文件或大文件导入到数据库表中,COPY比\copy性能高。原因也很明确:COPY是在数据库本地执行,\copy从客户端导出

标签:txt,PostgreSQL,表格,copy,导出,导入,scripts,test,COPY
来源: https://blog.csdn.net/qq_36213352/article/details/117856969

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有