UUID

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值