MySQL:有没有简单的方法将UUID转换为整数?

时间:2012-10-16 01:19:56

标签: mysql uuid

我需要将数据从一个系统A传输到系统B.系统A存储用户ID是UUID,系统B将它们存储为整数。

我正在使用MySQL select语句从系统A检索和保存数据,然后将其传输到系统B.是否有一种简单的方法可以将UUID转换为MySQL select语句中的整数?

1 个答案:

答案 0 :(得分:3)

正如评论中所讨论的,您不能简单地将UUID转换为整数并期望它是唯一的。 UUID是128位,而INT(10)可能是32位。这意味着您必须忽略96位,这相当于非常大量的潜在冲突(对于每个唯一的32位值,大约78个octillion不同的UUID)。

并非所有内容都丢失,因为在32位中,您可以代表最多约40亿用户,这可能就足够了。您真正需要做的就是将现有的UUID映射到一个整数,这实际上很简单。

要实现此目的,您可以创建一个存储UUID(作为主键)和唯一整数(可能是自动增量字段)的转换表。您可以使用它从系统A映射到系统B(而反之亦然)。您可以将此表放入两个数据库中的任何一个,也可以将其保持独立。就个人而言,我会把它放到系统B中,因为这是userId整数值实际上有意义的地方。