Как вызвать несколько файлов sql в одном файле sql в postgres
Например, у меня есть aaa.sql, bbb.sql, ccc.sql.
Я хочу выполнить эти 3 файла из xxx.sql.
Может ли кто-нибудь подсказать мне, как это сделать.
Если вы запускаете эти файлы через 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
На самом деле это немного лучше, потому что вам не нужно вводить имена файлов.
В оболочке bash вы можете сделать это также с помощью простого find -exec
find sql/ -name *.sql -exec psql -U user -f {} \;