xenoterracide Asked: 2011-06-16 13:35:39 +0800 CST2011-06-16 13:35:39 +0800 CST 2011-06-16 13:35:39 +0800 CST 使用 psql 一次获取多个文件 772 我想psql作为单个事务顺序执行几个 sql 脚本来设置我的数据库模式。做这个的最好方式是什么?在过去,我知道我有一个我运行的主脚本,psql其中包括其他文件,但是我不记得这个脚本的语法。 postgresql psql 3 个回答 Voted Best Answer Peter Eisentraut 2011-06-17T01:25:35+08:002011-06-17T01:25:35+08:00 您的脚本可能如下所示: BEGIN; \i file1.sql \i file2.sql COMMIT; 或者你可以做这样的事情: cat file1.sql file2.sql | psql -1 -f - caiohamamura 2020-06-16T15:37:00+08:002020-06-16T15:37:00+08:00 你也可以简单地做: psql -c "BEGIN TRANSACTION;" -f file1.sql -f file2.sql -c "COMMIT;" Deun 2016-11-07T03:46:21+08:002016-11-07T03:46:21+08:00 我在 unix / linux 中使用 find 完成了它,并使用带有“读取”指令的 rep_sql 参数的文件 sql 的路径过去: find -P ${rep_sql} -type f -name *.sql -execdir psql -d "mabase" -f {} + 它说:无论名称为“.sql”的名称如何,都找不到链接文件,并在使用 mabase 的文件 psql 的目录中执行并执行找到的文件。
您的脚本可能如下所示:
或者你可以做这样的事情:
你也可以简单地做:
我在 unix / linux 中使用 find 完成了它,并使用带有“读取”指令的 rep_sql 参数的文件 sql 的路径过去:
它说:无论名称为“.sql”的名称如何,都找不到链接文件,并在使用 mabase 的文件 psql 的目录中执行并执行找到的文件。