Oracle笔记之序列

需求:在Oracle的一张表中我们希望有一列,该列是整型数据类型,当我们添加一条记录时该列自动开始增长。

Oracle利用“序列(sequence)”来实现此要求。

1、创建一个序列:

create sequence 序列名 

start with 1

increment by 1                                     递增1

minvalue 1

Maxvalue 300000

cycle                                                     循环

nocache

使用:

创建一张表。test1(两列,第一列自增长)

inert into test1 values(序列名.nextval,'abc');



序列的细节:

可以被多个用户共享》

system可以使用scott的序列,并且是接着增长。

一般用于主键和唯一列。



nocache 表示不缓存,每次只产生1个号

cache 10 表示每次产生10个号,效率较高,可能产生跳号。


序列名.currval 返回序列的当前值。

nextval增加sequence值,返回当前值。

只有在进行过一次nextval后,才能使用currval。

第一次nextval返回的是当前值,后面的nextval返回的是next后的值。



使用环境:

不包含子查询、snapshot、view的select语句。

insert语句的子查询中

insert语句的value

update的set中

update 表名 列值=序列名.nextval where...


sql server 和MySQL都是在定义表的时候直接指定自增长。

sql server:

create table 表名(

id int primary key identity(1,1)

);

mysql:

create table 表名(

id int primary key aout_increment

);









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值