[pgsql-jp: 27083] Re: 文字列長制限に適したデータ型

Mitsunaga Hiroko mitsunag @ ari.ncl.omron.co.jp
2002年 8月 20日 (火) 09:44:34 JST


光永です。

谷田さん、レスありがとうございます。

> > 文字列長を制限してテーブルを作成したいのですが、
> > PostgreSQLではTEXT型が推奨とのことで、
> > CHECK制約を用いて下記のように作成しました。
> (snip)
> > ,CONSTRAINT check_text CHECK(octet_length(text_data) < 10)
> 
> PostgreSQLのバージョンはいくつですか?7.1ではこれは圧縮されたサイズにな
> るので意図した結果にならないでしょう。正しくはchar_length()を利用すべき
> だと思いますが。

文字数ではなくバイト数で制限をかけたいので、octet_lengthとしています。
現在、7.1.3で開発していますが、リリース時には7.2を使用する予定です。

ただし、圧縮について考慮していない点はご指摘のとおりでした。ありがとうご
ざいました。

[pgsql-jp 22452] Re: text 型に対するoctet_length()について

が参考になりそうなので、もう少し調べてみようと思います。


> > VARCHAR型を使用するのと、どちらがよろしいでしょうか?
> 単純に文字列長制限の問題であれば、VARCHARですね。

「text型はchar、varchar に比べて効率が良い」とされていますが、
この点に関してはいかがでしょうか?(「効率がよい」の意味を具体的にお教え
いただけるとありがたいです)
あと、VARCHARは「SQL92互換」とのことですが、この点についてもパフォーマン
スに即した長所の例をあげていただけるとありがたいです。

以上です。

===========================================
オムロン(株)技術本部 IT研究所 音声対話研究室
光永 浩子
E-mail: mitsunag @ ari.ncl.omron.co.jp
===========================================




pgsql-jp メーリングリストの案内