web-dev-qa-db-ja.com

UUIDの最大文字長

Oracle DBの主キーとしてUUIDを使用し、VARCHARの適切な最大文字長を決定しようとしています。どうやらこれは36文字ですが、これよりも長いUUIDが生成されていることに気付きました-最大60文字の長さです。誰でもUUIDに適した最大文字長を知っていますか?

101
user1753862

RFC4122のセクション は、UUID文字列表現の正式な定義を提供します。 36文字(32桁の16進数+ 4ダッシュ)です。

無効な60文字のIDがどこから来ているのかを把握し、1)それらを受け入れるかどうか、2)それらのIDの最大長は、それらを生成するために使用されるAPIに基づいて決定する必要があるようです。

151
broofa

ちなみに、これはVARCHAR 36ではなくCHAR 36として定義するのに最適な種類のフィールドです。各値の長さはまったく同じだからです。また、各値のデータ長を保存する必要はなく、値だけを保存する必要があるため、使用するストレージスペースが少なくなります。

58
apotek

最近、ほとんどのデータベースには、作業しやすくするためにネイティブUUIDタイプがあります。そうでない場合、それらは単なる128ビットの数字なので、BINARY(16)を使用できます。また、頻繁にテキスト形式が必要な場合は、トラブルシューティングのために、計算列を追加して、バイナリ列から自動的に生成します。 (はるかに大きい)テキストフォームを格納する正当な理由はありません。

6
StephenS