#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS