看到群里有人问这个问题,自己没做过,总觉得在psql下用命令来导入导出很费劲而且会有编码的若干问题,自己之前做也是用kettle来实现。不过毕竟没做过,也试试看,到底是个什么情况。
1.参考资料
(1)postgresql数据库导入和导出CSV格式 http://blog.chinaunix.net/uid-7270462-id-3478360.html,精英的博客,以后留意着点
(2)PostgreSQL: 如何处理导出的数据中文显示乱码问题? http://francs3.blog.163.com/blog/static/4057672720120694224195/
2.个人实践
(1)数据库表导出到csv文件
1)进入psql:
2)先看看编码用的是什么:
show client_encoding;
由于我之前设置过,设成了GBK,所以不用修改,如果不是GBK,而表里又有中文字段,那么请先修改编码:
set client_encoding=’GBK’;
注:语句的末尾的分号“;”不能丢,丢了就不执行了也不报错。
3)执行命令copy tb_test_poi to ‘D://li1.csv’ with csv header;
Windows下PostgreSQL导出/导入csv文件
4)如果有编码问题,再想办法解决吧(包括修改环境变量等,或者另寻它法)
(2)从csv文件导入数据库表
1)先要确保数据库里有对应的表,所以先执行建表sql脚本,我把原本的geo的类型从geometry改为character varying(3000),不然会出错的
Windows下PostgreSQL导出/导入csv文件
2)执行命令 copy tb_test_poi2 from ‘D://li1.csv’ with csv header;
执行完成显示记录数,说明就ok了
Windows下PostgreSQL导出/导入csv文件
3)pgAdmin里查询下结果看看
Windows下PostgreSQL导出/导入csv文件
3.总结
问题到此就都解决了,主要是学习了命令copy to和copy from的用法;
没遇到编码的问题,因为我之前就解决过了;
参考: http://blog.sina.com.cn/s/blog_673c98be0101gz6r.html
未经允许不得转载:窗外天空 » Windows下PostgreSQL导出/导入csv文件