Postgresの単一のSQLファイルで複数のSQLファイルを呼び出す


11

postgresで、単一のSQLファイルで複数のSQLファイルを呼び出す方法

たとえば、aaa.sql、bbb.sql、ccc.sqlがあります。

この3つのファイルをxxx.sqlから実行します。

誰でもこれを行う方法を私に提案できますか?

回答:


12

これらのファイルを実行しているpsql場合は、\iディレクティブが必要です(「ファイルからコマンドを実行する」)。

xxx.sql:

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

これらを他のプログラムに渡す場合は、ファイルを自分で組み合わせる必要があります。外部ファイルを実行するSQL標準の方法はないと思います。


返信してくれてありがとう。達成できたかどうかをテストして確認します
旅行

まだ機能していないようです何か不足しているのかどうかわかりません。最後にセミコロンが必要ですか??? -あんまり !!!
旅行

1
「機能していない」よりも具体的にする必要があります- これで機能することを確認します
-psql

動いた。最後に:-) Thankuの問題は-ファイルを認識できず、Oがファイルの相対パスを指定し、その作業が正常に行われたありがとうございました
トリップ

@Trip Trip、彼の答えにvoretaqのクレジットを忘れずに!
リチャードT

4

正確には何を求めているかではありませんが、目的を果たします。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

ファイル名を入力する必要がないため、これは実際には少し優れています。


3

bashシェルでは、シンプルな方法でも実行できます find -exec

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

"*.sql"ではなく使用する必要があります*.sql
Jeel Shah
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.