chama vários arquivos Sql em um único arquivo SQL no Postgres

8

Como chamar vários arquivos sql em um único arquivo sql, no postgres

Por exemplo, eu tenho aaa.sql, bbb.sql, ccc.sql.

Eu quero executar estes 3 arquivos do xxx.sql.

Alguém pode me sugerir como fazer isso?

    
por Trip 03.02.2012 / 22:02

3 respostas

9

Se você estiver executando esses arquivos através de psql , você quer a diretiva \i ("executar comandos do arquivo").

xxx.sql:

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

Se você está passando isso através de algum outro programa, você precisará combinar os arquivos você mesmo - eu não acredito que exista uma maneira padrão do SQL de executar arquivos externos.

    
por 03.02.2012 / 23:03
4

Não é exatamente o que você está pedindo, mas servirá ao seu propósito: 1) Coloque todos os seus arquivos de script em uma pasta; e 2) use um script bash para iterar seus arquivos e executar o psql. Por exemplo:

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

Na verdade, isso é um pouco melhor porque você não precisará digitar os nomes dos arquivos.

    
por 20.05.2015 / 20:36
0

Em um shell bash, você também pode fazer isso com um simples find -exec

find sql/ -name *.sql -exec psql -U user -f {} \;
    
por 04.01.2017 / 22:54

Tags