- - PR -
主キーにブランクの可能性がある項目はありですか?
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-09-13 21:09
「ブランク」を素直に理解すると「空白文字」ですかね? 1文字か、複数文字かという問題がありますが。
でも今回の質問の場合は、どちらかというと「長さ0の文字列」とか「NULL」のことを指していると理解したほうが妥当そうですね。 DB2は良く知りませんが、さすがに主キー制約を定義するのであれば、NULLは不可能と思います。一意制約ならNULLもOKそうですが、実はRDBMSによって一意制約におけるNULLの扱いが違う場合があるので、DB2はどうなのかを念のため確認してみてください。 Oracleの場合、一意制約においてのみ、NULLとNULLは等しくなります。例えば一意制約の定義される2つの列に対して、('A', NULL)の組み合わせは1つしか許されません。NULLとNULLの比較結果はNULLであるという原則からすると、おかしな実装です。 PostgreSQLやMySQLは、この原則に従っています。 以上、純粋に実装の観点からの意見です。 |
|
投稿日時: 2005-09-13 22:05
CHARだったら1文字も複数文字も空白文字も長さ0の文字列も同じですが。
そして主キーであれば普通CHARを利用します。 [ メッセージ編集済み 編集者: Anthyhime 編集日時 2005-09-14 07:25 ] |
