UUID:通用唯一识别码 (Universally Unique Identifier)
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成的API。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码、CPU时钟和许多可能的数字。
UUID组成形式:例如8c69be15-697a-4b4b-9243-ed990e601ed3,其中每一数字都是0-9a-f 的十六进制,一共16字节,128位,生成的字符是32个(UUID的长度是固定的,但是可以生成指定位数的UUID);
GUID和UUID的区别:
全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符。GUID主要用于在拥有多个节点、多台计算机的网络或系统中。在理想情况下,任何计算机和计算机集群都不会生成两个相同的GUID。GUID 的总数达到了2128(3.4×1038)个,所以随机生成两个相同GUID的可能性非常小,但并不为0。所以,用于生成GUID的算法通常都加入了非随机的参数(如时间),以保证这种重复的情况不会发生。
GUID一词有时也专指微软对UUID标准的实现。
UUID是由一组32位数的16进制数字所构成,是故UUID理论上的总数为1632=2128,约等于3.4 x 10^38。也就是说若每纳秒产生1兆个UUID,要花100亿年才会将所有UUID用完。
所以:GUID是UUID这个标准的一种实现;
java代码示例:
<span style="font-family:Times New Roman;font-size:18px;">import java.util.UUID;
public class GenerateGUID
{
/**
* 产生UUID
*/
public static final String generateGUID()
{
UUID uuid=UUID.randomUUID();
return uuid.toString();
}
public static void main(String[] args)
{
System.out.println(generateGUID());
}
}
//下面是产生的结果示例
//bf50e54c-d0f4-4bea-8fcf-c9d673f91d16
//a2edfa9f-bbd1-47e7-9523-c2b67c53756e
//8c69be15-697a-4b4b-9243-ed990e601ed3
下面是网络收集:
1.SQL Server数据库
以前开发SQL Server数据库将表定义中将列类型指定为uniqueidentifier,则列的值就为 GUID 类型。
2.在C#中创建一个GUID
Guid guid = Guid.NewGuid();
Console.Writeln(guid.ToString());
3,mysql中出现UUID重复问题:
如下方式进行插入的时候,会出现uuid重复的现象,只生成一个uuid
INSERT INTO TBL_ONE (ID, SOID, SNAME) SELECT
REPLACE (UUID(), '-', ''),
TWO.ID,
TWO.NAME
FROM
TBL_TWO TWO
改为如下,uuid重复现象消失:
INSERT INTO TBL_ONE (ID, SOID, SNAME) SELECT
UUID(),
TWO.ID,
TWO.NAME
FROM
TBL_TWO TWO
然后后期处理再批量替换id中的“-”号,即可(如果不想要-的话)
UPDATE TBL_ONE SET id =REPLACE(id,'-','')
借鉴文章引用处:
https://www.cnblogs.com/tibit/p/6183864.html
https://blog.csdn.net/qifang251413299/article/details/60144407