极乐门资源网 Design By www.ioogu.com

新建一个批处理文件batch.sql

\encoding UTF8;
\cd C:/Gmind/ddl
\set ON_ERROR_STOP 1
\set ECHO all
\timing on
\i s_product.sql;
\i s_branch.sql;
\i s_comment.sql;
\i s_class.sql;
\i s_drawing.sql;
\i s_dmemo.sql;
\i s_form.sql;

\encoding 设置客户端字符集编码(可选)

\cd 切换目录。用于将psql的命令执行目录切换到当前文件所在目录

\set ON_ERROR_STOP 设置变量ON_ERROR_STOP(可选),当脚本执行出现错误时自动终止。不设则默认继续执行

\set ECHO all 设置变量ECHO(可选),用于将每一步的执行脚本都显示到标准输出

\timing on 打开计时功能(可选),计算脚本每一步执行的耗时

\i 执行脚本文件。目录在psql中都是反斜杠(/),相对路径的上级目录用(..)表示

执行batch.sql,打开cmd窗口,执行

psql -U postgres -d testdb -f C:\Gmind\ddl\batch.sql > C:\Gmind\batch.log

注意:

1、sql文件格式最好是Unix的,不然可能会出错

2、如果提示:psql不是内部或外部命令,需要把C:\Program Files\PostgreSQL\10\bin加到环境变量里

补充:PostgreSQL - 用psql 运行SQL文件

对于预先写好的SQL文件,比如/home/user1/updateMyData.sql, 可以有两种方式来运行这个SQL文件。

方式一:连接db后执行SQL文件

首先通过psql连接到对应的db:

psql -d db1 -U userA

接着输入密码,进入数据库后,输入:

\i /pathA/xxx.sql

这里有个问题,如果你把SQL文件的路径里的路径分隔符写成了\,会报错说Permission denied。

这里的文件路径必须使用Linux平台下的路径分隔符/,否则会报错。

方式二:直接通过psql命令执行SQL文件

这种方式无需先登录数据库,直接用一个命令就可以了:

psql -d db1 -U userA -f /pathA/xxx.sql

接着输入密码即可执行SQL文件到对应的db里。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。

标签:
Postgresql,psql文件执行,批处理sql文件

极乐门资源网 Design By www.ioogu.com
极乐门资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com

评论“Postgresql psql文件执行与批处理多个sql文件操作”

暂无Postgresql psql文件执行与批处理多个sql文件操作的评论...

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。