如何在一个单一的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 {} \;