2

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

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

4

1 回答 1

3

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

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

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

于 2012-10-16T03:53:36.273 回答