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,至少這是我的猜測。你知道解決方法嗎? –