前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >oracle sequence用法_oracle赋值

oracle sequence用法_oracle赋值

作者头像
全栈程序员站长
发布2022-11-02 16:50:02
6180
发布2022-11-02 16:50:02
举报

创建sequence:

create sequence seq_test

increment by 1

start with 1

noMaxValue

noCycle

cache 10;

create sequence seq_test2

minvalue 1

maxvalue 21

start with 1

increment by 1

cache 20

cycle

order;

minValue: 指定序列最小值。

maxValue: 指定序列最大值。

increment by: 指定序列增长步长,可以为正(升序)、负整数(降序),但不能为0。

start with:指定序列起始数,默认为序列最小值。

noMaxValue:无最大值(实际为10^27或-1),默认。

noMinValue:无最小值(实际为1或-10^26),默认。

cycle:指定序列达到最大值或最小值后继续从头开始生成。

noCycle:不循环生成,默认。

cache:指定数据库内存中预分配的序列值个数,以便快速获取,最小cache值为2。如果系统关闭或者其它情况将会导致序列不连续,也可以设置为nocache。

noCache:不指定缓存数,默认缓存20。

order:指定order条件保证序列按请求顺序生成。

noOrder:不保证序列按请求顺序生成。

删除sequence:

drop sequence seq_test;

drop sequence seq_test2;

查看sequence值:

–查看sequence当前值

select seq_test.currval from dual;

–查看sequence下一个值,sequence发生变化

select seq_test.nextval from dual;

修改sequence:

alter sequence seq_test increment by 2;

alter sequence seq_test maxValue 99999999999;

修改sequence的初始值:

–将当前seq_test的值增加1000

alter sequence seq_test increment by 1000;

select seq_test.nextval from dual;

alter sequence seq_test increment by 1;

select seq_test.currval from dual;

sequence在表中应用:

–新建表

create table t_test(

uuid varchar2(20)

);

–插入sequence值

insert into t_test values(seq_test.nextval);

insert into t_test values(seq_test.nextval);

insert into t_test values(seq_test.nextval);

insert into t_test values(seq_test.nextval);

insert into t_test values(seq_test.nextval);

–查询

select * from t_test;

–删除表

drop table t_test;

sequence和触发器配合应用:

–新建表

create table t_test(

uuid varchar2(20),

name varchar2(20)

);

–新建触发器

create or replace trigger trg_test before insert on t_test for each row

begin

select seq_test.nextval into :new.uuid from dual;

end;

–插入数据

insert into t_test(name) values(‘n1’);

insert into t_test(name) values(‘n2’);

insert into t_test(name) values(‘n3’);

insert into t_test(name) values(‘n4’);

insert into t_test(name) values(‘n5’);

–查询

select * from t_test;

–删除

drop trigger trg_test;

drop table t_test;

查看当前用户下的sequence:

select * from all_sequences;

select * from user_sequences;

select * from user_sequences where sequence_name = upper(‘seq_test’);

select * from user_sequences where sequence_name = upper(‘seq_test2’);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/180266.html原文链接:https://javaforall.cn

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年10月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com