Postgresql psql文件执行与批处理

原创 2015年07月09日 13:59:15
示例:
    新建一个批处理文件batch.sql,它包含若干子文件,子文件与批处理文件不在同一目录下,批处理文件在C:\batchexc,子文件在C:\objects内,batch.sql的内容:

\encoding UTF8;
\cd C:/batchexc
\set ON_ERROR_STOP 1
\set ECHO all
\timing on
\i ../objects/platform.sql;
\i ../objects/cities.sql;
\i ../objects/weather.sql;
\i ../objects/one().sql;
\i ../objects/serial.sql;
   其中:
\encoding 设置客户端字符集编码(可选),适用于数据库服务端与客户端字符集编码不一致的情况。
\cd 切换目录。用于将psql的命令执行目录切换到当前文件所在目录。
\set ON_ERROR_STOP 设置变量ON_ERROR_STOP(可选),当脚本执行出现错误时自动终止。不设则默认继续执行。
\set ECHO all 设置变量ECHO(可选),用于将每一步的执行脚本都显示到标准输出。
\timing on 打开计时功能(可选),计算脚本每一步执行的耗时
\i  执行脚本文件。目录在psql中都是反斜杠(/),相对路径的上级目录用(..)表示。

    调用batch.sql,方法有二:

    方法一:外部命令调用

    psql -U postgres -d mydb -f C:\batchexc\batch.sql -L D:\batch.log

    -U 连接用户 -d 连接数据库 -f 执行脚本 -L 日志文件

    -L 日志文件只记录所有查询的输出结果,内容不是很详细。

    所以可以替换上一种写法为:

    psql -U postgres -d mydb -f C:\batchexc\batch.sql > D:\batch.log

    用“>”替代“-L”,日志文件记录了脚本执行较详细的信息。但错误信息不包括在内,需从cmd的输出界面中获得。

    方法二:元命令调用(此方法需先通过psql登录数据库)
    mydb=# \o D:/batch.log
    mydb=# \i C:/batchexc/batch.sql
    反斜杠(\)开头的代表psql的元命令。\o 表示将后面的查询结果保存到指定的文件中。\i 调用执行文件

    Note:无论调用psql的元命令或外部命令,目前我都没有找到方法可以将错误信息写入日志文件。如果有谁知道,请分享一下。
    这里介绍一个替代的方法:在Postgresql服务器端,安装目录\data目录下,有一个pg_log文件夹,里面保存有PG数据库的错误日志,日志文件一般按天创建,文件命名类似:postgresql-2015-07-09_083104.log,可以在pg_log文件夹下找到需要的错误信息。

版权声明:本文为博主原创文章,未经博主允许不得转载。

PostgreSQL sql放入文件批量执行

PostgreSQL sql放入文件批量执行
  • luojinbai
  • luojinbai
  • 2015年03月18日 11:00
  • 6101

Postgresql通过批处理命令执行sql文件

1、把要执行的sql保存为sqlCode.sql 需要注意的是编码格式最好为ANSI的,之前遇到过UTF-8在有些电脑有失败的情况 2、编写excuteSql.bat文件 该文件的内容为 se...
  • baidu_18607183
  • baidu_18607183
  • 2016年01月26日 18:57
  • 3439

postgresql 导入sql文件

cmd 下postgresql 导入sql数据文件> psql -h localhost  -d databaseName -U username-f  filename...
  • hhh80
  • hhh80
  • 2011年01月18日 19:15
  • 13647

如何将.sql文件导入到postgresql

1、打开PgAdminIII ,连接服务器。选择要执行该文件的数据库。 2、看到上面栏目有sql字样的图标,点击。如图: 3、打开后,如图:点击导入文件。执行即可。...
  • u010034351
  • u010034351
  • 2013年09月11日 10:23
  • 3687

PostgreSQL 使用psql插入参数到sql脚本文件中

1. 数据postgres=# select * from tb1; id | name -----+------ 2 | aa 3 | aa 4 | aa 7 | aa...
  • luojinbai
  • luojinbai
  • 2015年05月11日 18:25
  • 2156

postgresql导入sql脚本

首先进入到postgresql的bin安装目录下 比如D:\software\postgresql\bin 把xx.sql文件放到这个目录下 打开cmd命令窗口 ...
  • baidu_18607183
  • baidu_18607183
  • 2015年07月29日 17:09
  • 2633

多postgresql库批量执行SQL脚本文件

1、编辑pgpass文件 pgpass文件内容格式为:     地址:端口:数据库名称:用户名:密码 cd ${HOME} vi .pgpass 编辑如 :192.168.1.90:5432:ABCD...
  • odoo_autoyong
  • odoo_autoyong
  • 2016年08月15日 17:19
  • 629

使用postgreSQL命令行工具在shell脚本中自动执行数据库脚本

很多情况下,我们希望编写一个shell脚本,来完成一些诸如创建数据库、创建数据表等等的操作,dan...
  • xocoder
  • xocoder
  • 2014年04月23日 15:43
  • 11956

psql -i 脚本执行

参考:linux psql  http://linux.51yip.com/search/psql 最近自验升级脚本时用到了psql -i的命令,看了一个相关资料,很全面。 psql --  Po...
  • wwwtotoro
  • wwwtotoro
  • 2017年05月09日 09:50
  • 173

在脚本中调用psql如何自动输入密码

设置环境变量PGPASSWORD #linux export PGPASSWORD=12345 #windows set PGPASSWORD=12345 使用密码文件.pgpass 在~/目录下创...
  • fm0517
  • fm0517
  • 2016年11月11日 16:52
  • 795
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Postgresql psql文件执行与批处理
举报原因:
原因补充:

(最多只允许输入30个字)