SQLファイルの読み込みと実行
SQL ファイルは PostgreSQL のコマンドラインインターフェイスから読み込み、実行することができます。
SQL ファイルは複数の SQL コマンド を一括して実行することができ、SQL コマンドファイルとも呼ばれます。
以下は、psql にログイン後に \i コマンドで SQL ファイルを読み込み実行しています。
$ psql database_name ... database_name=> \i DataBase/Test/test.sql
上記の例では、対象となるデータベースは database_name で、SQL ファイルは DataBase/Test/test.sql です。
読み込むファイルはカレントのディレクトリからたどります。
psql コマンドの -f オプションでも SQL ファイルを読み込み実行することができます。
- ad -
以降の内容は SQL ファイルの読み込みと実行の手順を詳しく解説しています。
PostgreSQL コマンドラインインターフェイス
PostgreSQLのコマンドラインインターフェイスとは、psql コマンドによってログインします。 SQL 構文も実行できるコマンドラインインターフェイスで、PostgreSQL 会話型ターミナルともいいます。
まずは、psql コマンドで SQL ファイルを読み込み実行する先のデータベースを指定します。以下の例では、database_name
がデータベース名です。
$ psql database_name psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1)) Type "help" for help. ...
指定するデータベースは コマンドラインインターフェイス内の\c
コマンドで変更することもできます。
例えば以下のようにします。
\cコマンド
\c other_database
SQL ファイルの読み込みと実行
PostgreSQL コマンドラインインターフェイスの \i
コマンドで SQL ファイルの読み込みその内容を実行ます。以下の例の SQL ファイルはDataBase/Test/test.sql
です。
読み込み先のデータベース名は確認するようにしましょう。違うデータベースに SQL ファイルを実行しないようにしましょう。
データベース名は以下の例ではdatabase_name
です。
database_name=> \i DataBase/Test/test.sql
読み込みファイルはカレントディレクトリからファイル名で辿ります。
くれぐれも間違ったデータベースに SQL ファイルを実行しないようにしましょう。初期のテーブル作成でない限りは、事前にデータのバックアップを取るなどの対策をしてから実行したほうがよいかもしれません。
psql コマンド
psql コマンドの -f オプションでも SQL ファイルを読み込み実行することができます。psql コマンドは OS の端末から実行します。
$ psql -f DataBase/Test/test.sql -d database_name
この場合もカレントディクトリからファイルを辿ります。
複数の SQL ファイルの実行
複数の SQL ファイルをメインの SQL ファイルを通して読み込み実行することができます。
例えば、以下のように、\i コマンド
で複数の SQL ファイルの読み込みと実行を指定する main.sql というファイルを作成します。
/* some sql file */ \i example_table00.sql; \i example_table01.sql; ...
main.sql ファイルを読み込み実行することで、記載された コマンドが順次実行されます。
=> \i main.sql .. example_table00.sql、example_table01.sql ファイルが順次に読み込み実行される。
読み込む対象のファイルはカレントディレクリであることに注意してください。
カレントディレクトリの位置を変更するには、都度\cd
コマンドを使用するか、ファイル指定で位置を正確に指定してください。