经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
序列
来源:cnblogs  作者:xiaomingit  时间:2019/7/29 9:04:32  对本文有异议

序列

-- sequence 序列
-- 序列是数据库的一种对象,用于生成一串不重复的编号,可以递增或递减
作用:
可以为表中列自动产生值
由用户创建数据库对象来创建序列(sequence),并且可以由多个用户共享
一般用在主键或者唯一列

1.创建序列:
语法:
create sequence 序列名称
start with 开始数字 默认是1
increment by 增长数字 默认是1
minvalue 最小值 默认是1
maxvalue 最大值 默认是1
cache 批量生成多少个序号,使用完后再生成一批,用于序列的创建优化,默认是20

例子:
create sequence myseq --创建序列名
start with 1 --从1开始
increment by 1 --每次增长1
maxvalue 999999 --最大值 //nomaxvalue(不设置最大值)
minvalue 1 --最小值
cycle --循环 //nocycle(一直累加,不循环)
nocache --不使用缓存
解释:从1开始,每次增长1,最大值999999,之后循环从1开始。

2.使用序列
-- 序列在使用时,可以使用序列的两个伪列: CURRVAL -取得序列的当前值,NEXTVAL - 获取序列的下一个值
-- 序列创建后CURRVAL是没有值的,必须先使用NEXTVAL获取下一值,这是序列才会生产一批值

create table test(id number primary key,name varchar2(32));
insert into test values(myseq.nextval,'abc');
insert into test values(myseq.nextval,'ddd');

特别说明:
1、myseq:表示序列的名字,nextval:关键字,表示从序列中取下一个值。
2、sequence序列是需要配合number类型的列来使用;
3、sequence序列是要在主键或unique列上使用的。

3. 删除序列
DROP SEQUENCE SEQ_TEST;

 

原文链接:http://www.cnblogs.com/xiaomingit/p/11252907.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号