序列(sequence)是一种数据项,生成一个整数序列。生成的整数通常可以用来填充数字类型的主键列。

创建序列

CREATE SEQUENCE sequence_name
[START WITH start_num]
[INCREMENT BY increment_num]
[{MAXVALUE maximum_num |NOMAXVALUE}]
[{MINVLAUE  minimum_num |NOMINVALUE}]
[{CYCLE |NOCYCLE}]
[{CACHE cache_num |NOCACHE}]
[{ORDER | NOORDER}];

 

START WITH start_num :指定冲哪个整数开始,默认为1

INCREMENT BY increment_num :指定每次增加的量,默认为1

NOMINVALUE 指定升序序列最小为1,降序序列最大为-10^26,为默认值

NOMAXVALUE 指定升序序列最大为10^27,降序序列最大为-1,为默认值

CACHE cache_num指定要保留在内存中整数的个数。默认要缓存的整数位20葛。至少为2。最多为:CELL(maximum_num-minimum_num)/ABS(increment_num)

ORDER 确保按照请求次序生成整数。NOORDER为默认值。

CREATE SEQUENCE seq_name;

CREATE SEQUENCE seq_name
START WITH 10 INCREMENT BY 5
MINVALUE 10 MAXVALUE 20
CYCLE CACHE 2 ORDER;

 

获得有关序列的信息

SELECT *
FROM user_sequences;

 

使用序列

一个序列有两个‘伪列’,为curval 和 nextval.

在检索序列的当前值前,必须通过检查序列的下一个值对序列初始化。

SELECT seq_name.nextval FROM dual;

 

使用序列填充主键

INSERT INTO table_name(id) VALUES (seq_name.nextval);

 

创建seq_name 是定义为 nocache ,这样id 就会连续了。

修改序列

ALTER SEQUENCE seq_name
INCREMENT BY 2;

 

删除序列

DROP SEQUENCE seq_name;

 

 

 

 

 

 

 

 

 

相关文章:

  • 2021-10-24
  • 2021-07-27
  • 2022-12-23
  • 2022-12-23
  • 2021-05-05
  • 2021-06-15
  • 2021-09-29
  • 2021-09-29
猜你喜欢
  • 2021-08-17
  • 2021-08-06
  • 2021-08-23
  • 2022-12-23
  • 2021-09-29
  • 2021-10-28
  • 2021-11-18
相关资源
相似解决方案