racle的sys_guid() 函数

发布时间 2023-08-02 21:41:33作者: DAYTOY-105

1 解释

sys_guid(),是Oracle 8i 后提供的函数。sys_guid产生并返回一个全球唯一的标识符(原始值)由16个字节组成。在大多数平台,生成的标识符由主机标符,执行函数的进程或者线程标识符,和进程或线程的一个非重复的值(字节序列)

2 查看方式

select sys_guid() from dual;

注:如果为乱码则使用rawtohex()函数

select rawtohex(sys_guid()) from dual;

3 sys_guid()作为主键的优缺点

3.1 优点

(1)序列从起点开始进行自增,但只能保持在单个实例里唯一。因此不适合用作并行或远程环境的主键,因为各自环境里的序列可能会生成相同的数字,从而导致冲突的发生。而SYS_GUID会保证它创建的标识符在每个数据库里都是唯一的。
(2)序列必须是DML陈述式的一部分,因此它需要一个到数据库的往返过程(否则它就不能保证其值是唯一的)。SYS_GUID不需要对数据库进行访问的时间戳和机器标识符,这就节省了查询的消耗。

3.2 缺点

(1)从空间上,相同条件下,使用SYS_GUID做主键比用Sequence做主键,表多消耗了空间。
(2)用SYS_GUID使用时相对不太方便,必须(手动)输入或者通过脚本来填充相应的字段。

原文链接:https://blog.csdn.net/qq_41861832/article/details/128205231