我们使用 UUID 作为输出 oracleDB 的主键,并尝试为 VARCHAR 确定合适的最大字符长度。显然,这是36个字符,但我们已经注意到 UUID 的生成比这更长-多达60个字符的长度。 有人知道 UUID 的最大字符长度吗?
RFC4122 的第3节提供了 UUID 字符串表示的正式定义。它有36个字符(32个十六进制数字 + 4个破折号)。
听起来你需要弄清楚无效的60个字符的 ID 是从哪里来的,然后决定1)是否接受它们,2)这些 ID 的最大长度可能是基于用来生成它们的 API。
顺便说一下,这是定义为 CHAR 36的最佳字段类型,而不是 VARCHAR 36,因为每个值的长度都完全相同。并且您将使用更少的存储空间,因为您不需要为每个值存储数据长度,只需要存储值。
目前,大多数数据库都有一个本机 UUID 类型,以便更容易地使用它们。如果没有,那么它们只是128位的数字,所以你可以使用 BINARY (16) ,如果你经常需要文本格式,例如故障排除,那么添加一个计算列,从二进制列自动生成它。没有理由存储(大得多的)文本形式。