Oracle序列sequence

---------------------------------------------------Oracle序列sequence------------------------------------------------

在很多数据库中都存在一个自动增长的列,如果现在要想在oracle 中完成自动增长的功能, 则只能依靠序列完成,所有的自动增长操作,需要用户手工完成处理。

语法:CREATE SEQUENCE 序列名

[INCREMENT BY n]

[START WITH n]

[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]

[{CYCLE|NOCYCLE}]

[{CACHE n|NOCACHE}];

范例:创建一个seqpersonid的序列,验证自动增长的操作

CREATESEQUENCE seqpersonid;

序列创建完成之后,所有的自动增长应该由用户自己处理,所以在序列中提供了以下的两种操作:

NextVal :取得序列的下一个内容

CurrVal :取得序列的当前内容

                 select seqpersonid.nextval from dual;

select seqpersonid.currvalfrom dual;

在插入数据时需要自增的主键中可以这样使用

在实际项目中每一张表会配一个序列,但是表和序列是没有必然的联系的,一个序列被哪一张表使用都可以,但是我们一般都是一张表用一个序列。

序列的管理一般使用工具来管理。

在pl/sql中对表单约束修改

代码示例:

--创建序列,序列虽然是给某个表使用,但是序列并没有绑定在某一张表,任何一张表使用这个序列都可以

create sequence seqpersonid;

 

--查询序列的下一个值(重点,常用)

select seqpersonid.nextval from dual;

 

--查看当前值是多少

select seqpersonid.currval from dual;

 

insert into person(person_id, pname, gender, birthday)

            values(seqpersonid.nextval, '张三', 1, sysdate);

           

select * from person for update;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值