微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PostgreSQL导入导出表格

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';
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从客户端导出

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐