Назад | Перейти на главную страницу

вызывать несколько файлов Sql в одном файле SQL в Postgres

Как вызвать несколько файлов 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 {} \;