RFC 4122版本4的最大长度是多少?

5

我看到了http://www.ietf.org/rfc/rfc4122.txt

RFC 4122第4版的最大长度是多少?换句话说,它的最大长度总是与从文档中获取的此示例字符串值相同吗?f81d4fae-7dec-11d0-a765-00a0c91e6bf6

我认为答案在这一节中,这一节中提供了UUID字符串表示形式的正式定义,如下所示:

为了一个数据库表列(varchar)的缘故,我想听听第二个意见。

谢谢!


我没有答案,但是你使用的数据库服务器是哪个?一些数据库有专门用于存储UUID的类型。例如,SQL Server有“uniqueidentifier”类型。 - Rickard Andersson
好问题。Oracle。根据http://www.michelrenaud.com/?p=3,我看到“Oracle中没有GUID或uniqueidentifier类型”。 - finneycanhelp
相关问题 - Rickard Andersson
1个回答

9
根据RFC 4122
UUID长度为128位,可确保在空间和时间上的唯一性。
但如果我们想知道字符串表示形式,我们需要检查ABNF:
  UUID                   = time-low "-" time-mid "-"
                           time-high-and-version "-"
                           clock-seq-and-reserved
                           clock-seq-low "-" node
  time-low               = 4hexOctet
  time-mid               = 2hexOctet
  time-high-and-version  = 2hexOctet
  clock-seq-and-reserved = hexOctet
  clock-seq-low          = hexOctet
  node                   = 6hexOctet
  hexOctet               = hexDigit hexDigit
  hexDigit =
        "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" /
        "a" / "b" / "c" / "d" / "e" / "f" /
        "A" / "B" / "C" / "D" / "E" / "F"

我们总共有16个hexOctet。每个hexOctet算2个字符,再加上4倍的“-”字符。无论版本如何,我们总共有16 * 2 + 4 = 36个字符

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接