Oracle数据库采用那种主键生成策略

本文详细介绍了Oracle数据库中主键的多种生成策略,包括identity、sequence、hilo、native、seqhilo、increment、uuid.hex、assigned、foreign和select,其中sequence策略在Oracle中最为常见。每种策略的特点和适用场景都有所不同,例如,identity适用于MySQL和SQL Server,而hilo和seqhilo结合了数据库和内存中的算法。
摘要由CSDN通过智能技术生成

Oracle数据库采用那种主键生成策略

1、自动增长identity:

适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识

使用SQL Server 和 MySQL 的自增字段,这个方法不能放到 Oracle 中,Oracle 不支持自增字段,要设定sequence(MySQL 和 SQL Server 中很常用)

数据库中的语法如下:

 

 

view plaincopy to clipboardprint?

01.MySQL:create tablet_user(id int auto_increment primary key, name varchar(20)); 

02.SQL Server:create tablet_user(id int identity(1,1) primary key, name varchar(20)); 

03. 

04.<id name="id"column="id" type="long"> 

05.   <generator class="identity" /> 

06.</id> 

MySQL:create tablet_user(id int auto_increment primary key, name varchar(20));

SQL Server:create tablet_user(id int identity(1,1) primary key, name varchar(20));

 

<id name="id"column="id" type="long">

   <generator class="identity" />

</id>

 

2、sequence:

DB2、Oracle均支持的序列,用于为long、short或int生成唯一标识

数据库中的语法如下:

 

 

view plaincopy to clipboardprint?

01.Oracle:create sequenceseq_name increment by 1 start with 1; 

Oracle:create sequenceseq_name increment by 1 start with 1;

 

需要主键值时可以调用seq_name.nextval或者seq_name.curval得到,数据库会帮助我们维护这个sequence序列,保证每次取到的值唯一,如:

 

 

view plaincopy to clipboardprint?

01.insert into tbl_name(id, name)values(seq_name.nextval, ‘Jimliu’); 

02. 

03.<id name="id"column="id" type="long"> 

04.   <generator class="sequence"> 

05.      &l

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值