微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

UUID简介和跨平台生成方法

1、UUID简介
UUID是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。在UUID的算法中,可能会用到诸如网卡MAC地址IP,主机名,进程ID等信息以保证其独立性。128位整数(16字节)的全局唯一标识符(Universally Unique Identifier)。
2、使用UUID的优点
能够保证独立性,程序可以在不同的数据库间迁移,效果不受影响。保证生成的ID不仅是表独立的,而且是库独立的,这点在你想切分数据库的时候尤为重要。用UUID作为全局唯一的标识符在分布式系统中应用非常广泛。
3、UUID与GUID
关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。通常平台会提供生成UUID的API。UUID按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同),时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。
4、UUID在postgresql数据库作为主键的使用
在Postgresql数据库里,都有专门的UUID类型,在这样的数据库里,使用UUID做主键,效率没有任何问题。在postgresql中UUID的类型是uuid,采用RFC 4122,ISO/IEC 9834-8:2005标准。标准格式:a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11也可以以如下形式输入(必须要加引号当作字符串输入,否则出现类型不匹配错误):
A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
{a0eebc99-9c0b-4ef8-bb6d-6bb9bd380a11}
a0eebc999c0b4ef8bb6d6bb9bd380a11
输出全部以标准格式输出
5、跨平台生成UUID程序
WIN32下使用API CoCreateGuid,Linux下使用Uuid_generate。在下写了一个简单的跨平台程序,如有需要可以联系我,
我可以提供源码。
类的成员函数如果只是声明,则必须在类外实现,否则出现error LNK2019:错误。在程序出错时,从出错信息中
可以分析错误的原因,这是一种能力,需要培养。

6、chm文件无法打开的简单解决方法
1)在运行窗口中输入:regsvr32 itss.dll
2)如果还不行的话,在运行窗口中输入:regsvr32 C:/WINDOWS/system32/hhctrl.ocx

(这个方法一定能解决,Trust me!)

原文地址:https://www.jb51.cc/postgresql/197223.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐