oracle数据库--创建序列

创建序列

所谓序列,在oracle中就是一个对象,这个对象用来提供一个有序的数据列,这个有序的数据列的值都不重复。

1.序列可以自动生成唯一值
2.是一个可以被共享的对象
3.典型的用来生成主键值的一个对象
4.可以替代应用程序代码
5.当sequence的值存放在缓存中时可以提高访问效率。

创建语法

CREATE SEQUENCE name

[INCREMENT BY n]

[START WITH n]              

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

demo

create sequence TEST_SEC
minvalue 1
maxvalue 90
start with 1
increment by 20
cache 5
cycle;

note:

1.increment by n:表明值每次增长n(步长)

2.start with n: 从n开始

3.{MAXVALUE n | NOMAXVALUE}: 设置最大值

4.{MINVALUE n | NOMINVALUE}: 设置最小值,start with不能小于最小值。

5.CYCLE | NOCYCLE          : 是否循环,建议不使用

6.CACHE n | NOCACHE    : 是否启用缓存。

序列的属性(伪列):

1.nextval : 返回下一个可用的序列值。

就算是被不同的用户调用,每次也返回一个唯一的值。

2.currval :获取序列当前的值。

在currval调用之前,必须保证nextval已经获取过一次值。

使用sequence:

例如:

1.向表中插入数据

insert into emp values(emp_id_seq.nextval);

2.查看序列的当前值

select emp_id_seq.currval from dual;

3.获取序列的下一个值。

select emp_id_seq.nextval from dual;

缓存:

使用缓存可以提高sequence的访问效率

修改sequence:

ALTER SEQUENCE name

[INCREMENT BY n]      

[{MAXVALUE n | NOMAXVALUE}]

[{MINVALUE n | NOMINVALUE}]

[{CYCLE | NOCYCLE}]

[{CACHE n | NOCACHE}]

note:
1.必须是序列的拥有者,或者具有alter权限
2.修改后的序列,只对之后的值起作用。
3.不能修改start with,如果想改,只能删除,重新创建,启动。

删除sequence:

drop sequence seq_name;
posted @ 2022-05-13 17:03  King-DA  阅读(2198)  评论(0)    收藏  举报