序列生成器sequence所生成的数字只能保证在单个实例里是唯一的,这就不适合将它用作并行或者远程环境里的主关键字,因为各自环境里的序列可能会生成相同的数字,从而导致冲突的发生。
SYS_GUID会保证它创建的标识符在每个数据库里都是唯一的。
此外,序列必须是DML陈述式的一部分,因此它需要一个到数据库的往返过程(否则它就不能保证其值是唯一的)。
SYS_GUID源自不需要对数据库进行访问的时间戳和机器标识符,这就节省了查询的消耗。
create table use_seq_table(id integer);
create sequence use_seq_sequence;
insert into use_seq_table values (use_seq_sequence_value.nextval);
create table use_guid_table(id raw(16));
insert into use_guid_table(sys_guid());
对象在不同机器的不同数据库里生成以及需要将数据合并到一起的情况下,SYS_GUID很有用。
SYS_GUID()与sequence的作用及用法基本相同,都可以放在bi触发器中使用。
-- Create sequence
create sequence SEQ_ADDRESS
minvalue 1
maxvalue 999999999999999999999999999
start with 1
increment by 1
nocache;
create or replace trigger tri_address_bi before insert on address for each row
begin
if :new.id<0 or :new.id is null then
select seq_address.nextval into :new.id from dual;
--select substr(sys_guid(),1,32) into :new.id from dual;
end if;
end;
/
使用限制:
SYS_GUID生成的值的另一个显著的不足之处是,管理这些值会变得困难得多。你必须(手动)输入它们或者通过脚本来填充它们,或者将它们作为Web参数来传递。
出于这些原因,将SYS_GUID作为一个主关键字不是一个很好主意,除非是在一个并行的环境里或者希望避免使用管理序列生成器的情况下。
不过,使用SYS_GUID来做主键也不是不可以,但需要先转为 varchar2 较好。最好在使用时显示转换一下,如:substr(sys_guid(),1,32),直接使用RAW显然是不合适的。
直接插 raw 进入 varchar2 字段,发生隐式的转换,总不是太妥。曾见过因为大量隐式转换导致最后数据库崩溃,当然事后看是数据库的bug了。
相关推荐
模仿VS自带的GUID生成器,可生产GUID编码,点击即可复制到粘贴板
一个简单的实现guid算法的程序代码!这主要是应用c#语言编写的后台代码!
JBPM_Users_Guid jbpm 英文文档
veeam_backup_9_5_u4_quick_start_guid.pdf
idp680_guid
get guid 1c. very good tool
This is a Visual Basic 6 project that creates a GUID. It contains the function "CreateGUIDStr()". This function returns a GUID. The function calls some APIs, but this work is hidden from the user. ...
GUID GENERATOR TOOL. GENERATES GUID INTO BRACES, PARENTESES, ETC. DEVELOPED IN CSHARP
create trigger student_trigger before insert on student for each row when(new.SNo is null) begin select student_sequence.nextval into:new.SNo from dual;end;/ 最近插入一行数据 insert into student...
芯片后端综合流程工具DC 的uer guid、布局布线 ICC uer guid。 包含综合布局布线 基本流程、优化手段。也可以作为命令查询手册,包含基本tcl命令。做综合、ICC 等后端人员必备手册
简单的一个获取GUID的工具,即全局唯一标识符。
paraview users guid, 401页,很细致,很全。
资源来自pypi官网。 资源全名:django_guid-0.2.1-py3-none-any.whl
VB.NET Guid 号码生成器代码,每点击一次按钮,即可生成一个GUID码,代码基于VS.NET2010环境,测试请先生成项目源码,然后运行Bin/Debug目录下的GuidGenerator.exe文件即可。运行界面如上图所示
用hibernate方式配置生成mysql guid数据,32位的,在eclipse下直接导入,运行即可
This is the guid of dot net core 3.1. Dot net core是一门强大的语言,你可以使用它创建自己的网站,命令行程序,后台程序等等。
资源分类:Python库 所属语言:Python 资源全名:django_guid-1.1.1-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
资源分类:Python库 所属语言:Python 资源全名:django_guid-0.2.2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059