1. 程式人生 > >MySQL - 生成32位無"-"UUID

MySQL - 生成32位無"-"UUID

如果是主從即“M-S模式”,最好是不使用MySQL自帶函式UUID()來生成唯一主鍵,因為主表生成的UUID要再關聯從表時,需要再去資料庫查詢這個UUID,需要多進行一次資料庫互動,而且在這個時間差裡面主表很有可能還有資料生成,這樣就很容易導致關聯的UUID出錯。如果真要使用UUID,可以在Java中生成後,直接儲存到DB裡,這時主從的UUID就是一樣的了。

生成UUID

這裡只是為了演示,MySQL自帶函式UUID()。

INSERT INTO `t_customer` (`id`)
VALUES
	(UUID());

執行結果:

生成32位無"-"UUID

#替換UUID()函式生成的“-”為“”,insert時替換會導致主鍵衝突。

UPDATE `t_customer` set id = REPLACE(id,"-","");

執行結果:

好啦,over。