oracle 序列,程序中实现自增

1. 序列作用和含义

  序列是用于生成唯一、连续序号的对象;可以是升序的,也可以是降序的;

使用create sequence语句创建序列

create sequence 序列名
 start with 1
 increment by 1
 maxvalue 10000
 nocycle
 cache 10;

nocycle 在达到最大值后停止生成下一个值
cache 指定在内存中预先分配的序号数 默认为20
在这里插入图片描述

2. 序列的使用

2.1 直接使用序列

  nextval 返回序列的下一个值
  currval 返回序列的当前值
第一次使用序列的值时,必须使用nextval
在这里插入图片描述

create table student (sno number,sname varchar(2));
insert into student values(s1.nextval,'a');
insert into student values(s1.nextval,'a');
insert into student values(s1.nextval,'a');
insert into student values(s1.nextval,'a');
commit;

在这里插入图片描述

2.2 配合触发器隐式使用
create or replace trigger squ_test before insert on student 
for each row
begin
    select s1.nextval into:new.sno from dual;
end;

在这里插入图片描述

2.3 修改删除序列

使用alter sequence语句修改序列,不能修改序列的start with参数

alter sequence s1 maxvalue 5000 cycle;

在这里插入图片描述

删除序列

drop sequence s1;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

但行益事莫问前程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值