1、背景说明
平时运维的时候,总是会有需要把指定的查询SQL返回的结果在命令行界面导回自己本地电脑的时候。这个时候就需要想办法了。
下面列出了2种可能的使用场景,另外,下面的导出结果到文件的方法可能也不是唯一的用法。
2、场景1:执行SQL查询语句返回结果导出到指定的文件
如果执行的SQL语句很简单,比如就一行,那这种方式比较适合。
不用进入psql命令行界面,直接进入pg用户管理界面,执行下面的样例,
-d 后面的是数据库名称,
-c 后面的是要执行的SQL语句,
-A -F 2个参数是联合起来使用的,后面的“,"是保存文件的分隔符
-o 后面是保存到的文件路径,特别注意,要估算一下生成文件大概的大小,确保指定的文件保存目录有足够的磁盘空间
psql -d test -c “select id,name from simple” -A -F “,” -o my.csv
例子:
postgres@bd127d290e40:~$ psql -d test -c "select id,name from simple" -A -F "," -o my.csv
postgres@bd127d290e40:~$ cat my.csv
id,name
1,name1
2,name22
3,name3
(3 rows)
postgres@bd127d290e40:~$
3、场景2:执行SQL脚本文件返回结果导出到指定的文件
当需要执行的SQL语句很长很复杂,这个时候直接在命令行界面来执行语句并保存到文件就比较难操作,此时提前把SQL语句编辑好放到sql脚本文件中,然后再以执行文件的方式来保存返回结果到文件,这个就比较好实施。具体命令例子如下:
和上面场景1不一样的就是 -f 参数,这个参数是指定走脚本文件的方式,后面的文件为脚本文件路径。
-d 后面的是数据库名称,
-f 参数,这个参数是指定走脚本文件的方式,后面的文件为脚本文件路径,
-A -F 2个参数联合起来使用的,后面的“,"是保存文件的分隔符
-o 后面是保存到的文件路径,特别注意,要估算一下生成文件大概的大小,确保指定的文件保存目录有足够的磁盘空间
postgres@bd127d290e40:~$ psql -d test -f mysql.sql -A -F "," -o my.csv
。
。
。
。
。
。
。
。