我在Linux debian中的一个文件夹(homemyHSHscripts)里有很多.sql文件,我想知道如何执行或运行文件夹里的所有sql文件到postgreSQL v9.1数据库。我想知道如何在PostgreSQL v9.1数据库中执行或运行文件夹内的所有sql文件。
PostgreSQL的信息。
Database name=coolDB
User name=coolUser
如果你知道如何通过图形用户界面工具(如pgAdmin3)执行多个sql文件,那就更好了。
从你的命令行,假设你使用的是Bash或ZSH(简而言之,除了cshtcsh以外的任何东西)。
for f in *.sql;
do
psql coolDB coolUser -f "$f"
done
列表中的 find
命令与 -exec
或 xargs
可以让这一切变得非常简单。
如果你想执行 psql
每个文件一次,您可以使用 exec
这样的命令
find . -iname "*.sql" -exec psql -U username -d databasename -q -f {} \;
-exec
每个结果将执行一次命令。
该 psql
命令允许你指定多个文件,通过调用每个文件,用一个新的 -f
例如,你可以建立一个命令,如
psql -U username -d databasename -q -f file1 -f file2
这可以通过管道中的 find
到一个 xargs
命令一次来格式化带有-f参数的文件,然后再次执行命令本身。
find . -iname "*.sql" | xargs printf -- ' -f %s' | xargs -t psql -U username -d databasename -q