PostgreSQL: \pset null を使い PostgreSQL の NULL の表示を変更する2020年11月10日 12時33分28秒

SQLite での NULL の表示の仕方を変更する方法を取り上げた。PostgreSQL でも NULL が空文字として表示される。その為、何も無いのか、NULL なのか、空文字があるのか判りづらい時がある。PostgreSQL には \pset のコマンドで、それで任意の出力に変える事が出来る。

PostgreSQL を起動し、NULL を選んでみる。

% psql -U postgres
psql (10.5)
Type "help" for help.

postgres=# SELECT NULL;
 ?column?
----------

(1 row)

postgres=# VALUES ( NULL, NULL ), ( NULL, NULL );
 column1 | column2
---------+---------
         |
         |
(2 rows)

PostgreSQL は表を生成し行数も出るので SQLite よりも判りやすいが、それでも空文字との区別が付かない。
postgres=# \pset NULL (null)
\pset: unknown option: NULL
postgres=# \pset null (null)
Null display is "(null)".
postgres=# SELECT NULL;
 ?column?
----------
 (null)
(1 row)

postgres=# VALUES ( NULL, NULL ), ( NULL, NULL );
 column1 | column2
---------+---------
 (null)  | (null)
 (null)  | (null)
(2 rows)

「\pset null」 コマンドで NULL を「(null)」と表示するように変えた。空白だけだと判りづらかった NULL が目視できる。また、null を大文字の NULL を使うと、\pset は失敗する。

$HOME/.psqlrc にコマンドを書いて、起動時に設定することも出来る。

% echo '\pset null (null)' >> ~/.psqlrc
% psql -U postgres
Null display is "(null)".
psql (10.5)
Type "help" for help.

postgres=# SELECT NULL;
 ?column?
----------
 (null)
(1 row)

postgres=#

前回