PostgreSQL命令批处理脚本中的自动化

时间:2018-04-07 12:56:40

标签: postgresql

我需要通过批处理作业自动执行以下命令,有没有办法做到这一点。当前命令提示符在执行第一步(psql -U nrgadmin -d enwdb)后停止。在enwdb数据库中,我需要手动执行从开始到提交的步骤。任何帮助,将不胜感激。

psql -U nrgadmin -d enwdb;

 begin;
 alter schema asset_enw rename to asset_enw_backup;
 alter schema asset_import rename to asset_enw;
 alter table enw.geom rename to geom_backup;
 alter table enw.geom_backup set schema asset_enw_backup;
 alter table import.geom set schema enw;
 commit;

1 个答案:

答案 0 :(得分:1)

将您的命令放在脚本文件中,并在运行时使用-f psql选项。

psql -U nrgadmin -d enwdb -f myscript.sql

或者,如果您在Unix环境中,可以将它全部放在shell脚本中的here文档中并运行shell脚本。

#!/bin/sh
psql -U nrgadmin -d enwdb <<EOF
BEGIN;
alter schema asset_enw rename to asset_enw_backup;
#other statements
#--
COMMIT;
EOF
相关问题