postgreSQLに複数ファイルを読み込ます


sqlファイルが2つの例

1つ目のファイル

file_A.sql

insert into table_name (
    id,
    column1,
    column2,
    column3)
values
    (1,'column1_data1','column2_data1','column3_data1'),
    (2,'column1_data2','column2_data2','column3_data2'),
    (3,'column1_data3','column2_data3','column3_data3');



2つ目のファイル
file_B.sql

insert into table_name (
    id,
    column1,
    column2,
    column3)
values
    (4,'column1_data4','column2_data4','column3_data4'),
    (5,'column1_data5','column2_data5','column3_data5'),
    (6,'column1_data6','column2_data6','column3_data6');



まず、postgreSQLにバックグラウンドで接続
$ pg_ctl -D /usr/local/var/postgres -l logfile start


データベースを呼び出す
$ psql database_name


1つずつ読み込ます場合


database_name=# \i file_A.sql

返ってくる表示
INSERT 0 3


database_name=# \i file_B.sql

返ってくる表示
INSERT 0 3


2つを一気に読み込ます場合


別途に下記のようなリストファイルをつくる。

file_all.sql

\i file_A.sql
\i file_B.sql


リストファイルを読み込ますとfile_A、file_Bの内容が一気に実行される。

database_name=# \i file_all.sql

返ってくる表示
INSERT 0 3
INSERT 0 3


今回の環境

Ruby 2.4.1p111
postgreSQL 10.1