如何在postgreSQL linux中执行多个sql文件?

问题描述 投票:2回答:2

我在Linux debian中的一个文件夹(homemyHSHscripts)里有很多.sql文件,我想知道如何执行或运行文件夹里的所有sql文件到postgreSQL v9.1数据库。我想知道如何在PostgreSQL v9.1数据库中执行或运行文件夹内的所有sql文件。

PostgreSQL的信息。

Database name=coolDB
User name=coolUser

如果你知道如何通过图形用户界面工具(如pgAdmin3)执行多个sql文件,那就更好了。

command-line postgresql-9.1 sql-scripts
2个回答
9
投票

从你的命令行,假设你使用的是Bash或ZSH(简而言之,除了cshtcsh以外的任何东西)。

for f in *.sql;
do
    psql coolDB coolUser -f "$f"
done

0
投票

列表中的 find 命令与 -execxargs 可以让这一切变得非常简单。

如果你想执行 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
© www.soinside.com 2019 - 2024. All rights reserved.