4
我试图添加UUID到我的一些MySQL数据库(MySQL 5.7.9)中的某些表。首先,我开始通过添加一列接收的UUID:MySQL为多行生成UUID()
ALTER TABLE `mytable` ADD COLUMN `Uuid` BINARY(16) DEFAULT NULL;
然后,对于已经在表中的所有项目,我生成UUID(因为在数据库中的每个条目都会收到一个NULL值。在它的UUID场
UPDATE `mytable` SET Uuid= unhex(replace(uuid(),'-','')) WHERE Uuid IS NULL;
现在,事情是我做这个得到一些非常怪异的行为;对我的一些数据库,生成的所有UUID是唯一的(如预期),但对其他数据库,所有生成的UUID是相同的(不相似,相同)。
我怀疑这是由于MySQL查询优化器,因为不同数据库实例(全部在MySQL 5.7.9上)之间的行为不一致。但是,我不知道如何解决这个问题。
因此,MySQL的大师,我做错了什么?
@TimBiegeleisen。 。 。这是一个旧的bug报告,修复它的代码应该在十年前就已经提交。你知道这个修补程序是否从未纳入代码库? –
可能的重复:https://stackoverflow.com/questions/9750536/mysql-uuid-duplication-bug –
@GordonLinoff他的查询是用相同的时间戳重复调用UUID,至少这是我的猜测。你知道解决方法吗? –