我需要通过批处理作业自动执行以下命令,有没有办法做到这一点。当前命令提示符在执行第一步(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;
答案 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