#navi(../)
* psqlの出力でnullなのか空なのかわかりやすくしたい [#da6ea4d1]
varcharなどのカラムの内容がnullなのか空なのかわかりやすくする方法を以下に記します。
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* 関連記事 [#cbffb672]
-[[psql表示でmore表示ぜず一度に表示する方法>PostgreSQL/psql表示でmore表示ぜず一度に表示する方法]]
-[[psql起動時にpagerをoffにしたい>PostgreSQL/psql起動時にpagerをoffにしたい]]
* 確認用テーブル [#x1b84475]
nullと空(empty)を確認するために、以下のテーブルを作成しました。
sakuradb=> create table t1 (v varchar(10));
CREATE TABLE
sakuradb=> \d t1
Table "public.t1"
Column | Type | Modifiers
--------+-----------------------+-----------
v | character varying(10) |
* 確認用データ [#sd7a3227]
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 で出力を設定する [#zd0763a3]
以下のコマンドで、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起動時に設定した状態で起動したい [#ncae184a]
psqlの設定は、.psqlrcに記述すれば良いです。~
上記の構文を $HOME/.psqlrc に追記してください。~
以下のコマンドをご活用ください。
echo \\pset null \'\(null\)\' >> ~/.psqlrc
この設定により、(null)と表示されるようになります。
#ref(11.png)
#br
以上、nullと空(empty)をわかるように出力する方法でした。
#htmlinsertpcsp(db-btm.html,db-sp.html)