このエントリーをはてなブックマークに追加


psqlの出力でnullなのか空なのかわかりやすくしたい

varcharなどのカラムの内容がnullなのか空なのかわかりやすくする方法を以下に記します。

関連記事

確認用テーブル

nullと空(empty)を確認するために、以下のテーブルを作成しました。

sakuradb=> create table t1 (v varchar(10));
CREATE TABLE
sakuradb=> \d t1
             Table "public.t1"
 Column |         Type          | Modifiers
--------+-----------------------+-----------
 v      | character varying(10) |

確認用データ

nullと空(empty)をinsertします。

sakuradb=> insert into t1 values (null),('');
INSERT 0 2
sakuradb=> select * from t1;
 v
---


(2 rows)

sakuradb=>

insert後にselectをしましたが、nullなのかemptyなのかがpsqlの出力ではわからないのが確認できます。

pset null で出力を設定する

以下のコマンドで、nullの場合(null)と出力されるようになります。

\pset null '(null)'

以下、実行例です。

sakuradb=> \pset null '(null)'
Null display is "(null)".
sakuradb=> select * from t1;
   v
--------
 (null)

(2 rows)

上記では、'(null)'としましたが、任意の文字列にすることができます。
例えば、以下のように(ヌルだよ)を指定します。

sakuradb=> \pset null '(ヌルだよ)'
Null display is "(ヌルだよ)".
sakuradb=> select * from t1;
     v
------------
 (ヌルだよ)

(2 rows)

psql起動時に設定した状態で起動したい

psqlの設定は、.psqlrcに記述すれば良いです。
上記の構文を $HOME/.psqlrc に追記してください。
以下のコマンドをご活用ください。

echo \\pset null \'\(null\)\' >> ~/.psqlrc

この設定により、(null)と表示されるようになります。

11.png
 

以上、nullと空(empty)をわかるように出力する方法でした。


添付ファイル: file11.png 1139件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-16 (月) 12:30:41