psql でコマンドラインから変数に値を代入する

前回 psql の変数について書きましたが 変数への値の代入は psql を起動するコマンドラインからもできます。 というか、バッチ処理などを考えるとそっちがメインになると思います。 (ヒアドキュメントという手もありますが)

SQL は、前回と同じものを使用します。

SELECT * FROM generate_series(1, 100) 
WHERE generate_series between :start AND :end;

start と end という 2 つの変数を使用しています。

コマンドラインで指定するには、v オプションを使用します。

$ psql -f test.sql -v start=3 -v end=9 db

 generate_series
-----------------
               3
               4
               5
               6
               7
               8
               9
(7 rows)

特定の日付や期間で SQL を実行したい場合などに使えます。

Google サイト内検索

Amazonアソシエイト