• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Oracle中序列-sequence的应用

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

oracle中没有象Acces中自动编号的字段类型,所以在oracle中要想用一个字段自动增值,还比较麻烦,在此提供给大家一个方法,利用序

Oracle中没有象Acces中自动编号的字段类型,,所以在oracle中要想用一个字段自动增值,还比较麻烦,在此提供给大家一个方法,利用序列,来完成字段的自动增加,下边介绍一下怎么创建序列,使用序列,和删除序列。

1.创建序列————–create sequence

本文来源[email protected]搞@^&代*@码)网9

create sequence Seq_AutoID //所起序列名叫 Seq_AutoID ,需要记住此序列名,以后方可调用

minvalue 1 //最小值从1开始 可以根据自己的需要自定义

maxvalue 9999999999999999999 //序列最大值为 999999999999999999999 可以自定义

start with 1 //从1开始 可以自定义

increment by 1 //递增幅度为 1 可以自定义

cache 20 ; //缓存20

2. 调用序列,完成自动加1 ————Seq_AutoID.nextval

在向表中插入、更新 数据时可以调用 ,由于自己实际应用中只用到了 插入时调用,所以在此只举此列

EG: insert into table1 ( f1,f2,f3,f4) select f1,f2,f3,Seq_AutoID.nextval from table2 where 条件

当然上边这句是批量插入数据,你也可以用 values值来一条条插入。在此需说明的一点为table1.f4字段需为数值型(number)型。这样,你的table1中的f4字段就是从1开始,以幅度为1来递增的数值了,实现了自动增加的功能。当然幅度可以自己定义。

还有一点是 序列是值是唯一的,只要你一直用nextval来递增的话,在oracle中序列号不会重复.可以用CurrVal来查询当前的序列值,在你nextval后,currval也会跟着变。

3.序列的删除————–drop sequence

当为了重置序列时,或不需要序列时,可以先删除序列

EG: drop sequence Seq_AutoID;

4.用序列来修改某个字段的值

eg: update cse_depot set jobid=Seq_AutoID.nextval

以上这个例子是用当前的序列值给cse_depot的字段 jobid赋值,使jobid字段实现自动加1功能

以上几点是自己跟据自己所用总结出来的,也希望大家跟帖参与讨论。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Oracle中序列-sequence的应用
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址