当前位置:   article > 正文

【oracle】序列:sequence_oracle sequence 当前值

oracle sequence 当前值

Oracle数据库中,序列(Sequence)是一种生成唯一数字的对象,常用于生成主键值或其他需要唯一标识的值。

1.序列的创建:

CREATE SEQUENCE sequence_name
[START WITH value]              --序列产生的起始位置,默认为1
[INCREMENT BY value]            --序列增长的步长,默认为1
[MAXVALUE value | NOMAXVALUE]   --最小值,默认为1
[MINVALUE value | NOMINVALUE]   --设置最大值,默认9999999999999999999999999999
[CYCLE | NOCYCLE]               --设置是否循环。CYCLE表示当序列达到最大值时,会重新从最小值开始生成序列值
[CACHE value | NOCACHE];        --缓存设置,默认为20

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

CACHE参数指定了序列缓存的大小,即在内存中预先分配的序列值的数量。例如,如果将CACHE参数设置为100,那么Oracle会在内存中预先分配100个序列值,以便在需要时快速获取序列值,而不必每次都从磁盘读取。

2.序列的使用

  • nextval:生成下一条数字
  • currval:获取当前的数字
  • 注意:在创建好一个序列之后,在使用currval之前必须要先执行一次nextval来生成一个数字
语法:select 序列名.nextval/currval from dual;
  • 1
--创建一个序列
create sequence test_pk;
--创建一个从10开始,步长为5,最大值100000000的序列
create sequence test_pk1 
start with 10
increment by 5
minvalue 10
maxvalue 100000000
cache 5;

--生成一个数字
select test_pk1.nextval from dual;
--获取当前的数字
select test_pk1.currval from dual;

--建表
create table user_t(
  u_id number,
  u_name varchar2(20)
);
--插入
insert into user_t values(test_pk.nextval,'小明');
--查询
select * from user_t;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/816613
推荐阅读
相关标签
  

闽ICP备14008679号