postgresql技巧之命令导出表(csv格式)

news/2024/7/9 20:22:09 标签: postgresql

有时候我们需要导出某个表,但是又不能用Navicat等直接连接数据库,那么就可以使用COPY命令来导出表;

postgresql_1">一、登录postgresql

其需要先在数据库服务器上切换账户并进入postgresql

[root@localhost ~]# su - postgres
Last login: Sun Apr 28 18:11:32 CST 2019 on pts/0
[postgres@localhost ~]$ psql
psql (9.2.23, server 9.5.11)
WARNING: psql version 9.2, server version 9.5.
         Some psql features might not work.
Type "help" for help.

postgres=# 

二、进行导出

而后即可使用命令来进行导出了;
标准写法范例如下:

copy lty_dispatch_operation_logs to "/usr/etc/lty_dispatch_operation_logs.csv" with csv header;

此写法中lty_dispatch_operation_logs为数据库表名,"/usr/etc/lty_dispatch_operation_logs.csv"为要导入到的文件的路径,注意此文件所在父目录必须存在

1、高级用法一–使用查询

这里也是可以使用查询语句的,即把上面例子中的lty_dispatch_operation_logs改为查询语句即可,但是要用()包围起来,如下所示:

copy (select * from scheduleplan_execdownplanitem where starttime between '2019-04-16 20:00:00' and '2019-04-17 23:59:59') to '/usr/etc/scheduleplan_execdownplanitem.csv' with csv header;

2、高级用法二–远程导出

在前面的用法中导出后需要在用scp或者ftp等方法把导出的数据拷贝到本地等;
那么有没有直接在本地导出的方法呢?有的,如下所示:

psql --dbname=my_db_name --host=db_host_ip --username=my_username -c "COPY (select id as COL_ID, name as COL_NAME from my_tab order by id) TO STDOUT with csv header" > D:/client_exp_dir/file_name.csv

范例:

psql -h 172.20.1.124 -p 5432 -U smartsys -d smartsys -o e:\test2.cvs -c “select * from obj_dev;

注意:此处无需先登录postgresql

postgresql_41">三、退出postgresql

使用如下命令退出登录:

postgres=# \q
[postgres@localhost ~]$ exit
logout
[root@localhost ~]# 

http://www.niftyadmin.cn/n/1859179.html

相关文章

利用辗转相除法来解决最大公约数问题

也可以使用最笨的办法就是短除法,但是如果数比较大的话效率问题就呵呵了。 package sfbc; /*** 利用辗转相除法来解决最大公余数问题* 可以用来求最简分数* author trfizeng**/ public class GCD {public static void main(String[] args) {System.out.println(doGC…

Could not find SQL statement to include with refid**

一、错误描述 二、问题原因 **mapper.xml 文件出错: 1、id错误 2、sql便签必须在其他便签之前 3、SQL语句写错

Web页面读不出来传过来的数据

错误 解决 查看com.online.education.common.web.UTF8HttpMessageConverter这个类是不是有问题

使用jenkins插件SSH plugin执行远程ssh

1、安装插件 插件名称为SSH plugin,如下所示: 2、增加一个凭证: (1)添加一个域(也可以使用已有的): 此处域名可以随便写; (2)、添加凭证 在…

No bean named '******' is defined

一、错误描述 二、解决办法 IAuthUserService authUserService (IAuthUserService) SpringBeanFactory.getBean("IAuthUserService");改正

java获取当前jar包所在目录

原本获取工程目录使用方法System.getProperty("user.dir"); 但是打完包放在linux机器上跑的时候发现无法正确获取到该jar包所在目录,导致无法运行; 网上查阅后修改为如下方法: public String getPath(){String path t…

Mybatis更新未完成

一、错误信息 二、错误解决 没有 id 查看实体类

java获取系统属性System.getProperty

获取系统参数使用方法System.getProperty(property); property为要获取的系统属性的key; 系统属性key列表如下: 键值java.versionJava 运行时环境版本java.vendorJava 运行时环境供应商java.vendor.urlJava 供应商的 URLjava.homeJava 安装目…