在Postgres中的一个SQL文件中调用多个Sql文件

如何在一个单一的SQL文件,在Postgres中调用多个SQL文件

例如,我有aaa.sql,bbb.sql,ccc.sql。

我想从xxx.sql执行这3个文件。

任何人都可以build议我如何做到这一点。

如果你通过psql运行这些文件,你需要\i指令(“从文件执行命令”)。

xxx.sql:

 \i aaa.sql \i bbb.sql \i ccc.sql 

如果您通过其他程序传递这些文件,则需要自己组合这些文件 – 我不相信有任何执行外部文件的SQL标准方法。

不完全是你所要求的,但将为你的目的:1)把所有的脚本文件放在一个文件夹; 2)使用bash脚本遍历你的文件并运行psql。 例如:

 SCRIPTS_DIR=/home/myproject/scripts DATABASE_NAME=database_name for file in $SCRIPTS_DIR/*.sql do sudo -u postgres psql $DATABASE_NAME -f $file done 

这实际上好一点,因为你不必input文件的名字。

在bash shell中,你也可以用简单的find -exec

 find sql/ -name *.sql -exec psql -U user -f {} \;