Oracle笔记之序列

来源:互联网 发布:中国国民收入数据库 编辑:程序博客网 时间:2024/04/30 15:24

需求:在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

);









0 0
原创粉丝点击