psql
作为单个事务顺序执行几个sql脚本,以设置数据库模式。做这个的最好方式是什么?过去我知道我有一个针对其他文件运行psql
的主脚本,但是我不记得该脚本的语法。#1 楼
您的脚本可能如下所示:BEGIN;
\i file1.sql
\i file2.sql
COMMIT;
或者您可以执行以下操作:
cat file1.sql file2.sql | psql -1 -f -
#2 楼
我使用unix / linux中的find命令,使用rep_sql参数的sql过去文件的路径,并带有“ read”指令:find -P ${rep_sql} -type f -name *.sql -execdir psql -d "mabase" -f {} +
它说:查找不跟随链接使用ext作为«.sql»来命名任何名称的文件,并在与mabase一起使用的psql文件的目录中执行并执行找到的文件。
#3 楼
您也可以简单地执行以下操作:psql -c "BEGIN TRANSACTION;" -f file1.sql -f file2.sql -c "COMMIT;"
评论
了解Shell中的管道有助于我获得最后一条命令。
–ma11hew28
2015年9月24日15:13
您的BEGIN示例;承诺;不起作用,您需要在每\ i行的末尾使用半列:
– nichochar
19-2-14在22:53