Oracle提供了sequence对象,由系统提供自增长的序列号,通常用于生成数据库数据记录的自增长主键或序号的地方,一般结合触发器使用。

Sequence是数据库系统的特性,有的数据库有Sequence,有的没有。比如Oracle、DB2、PostgreSQL数据库有Sequence,MySQL、SQL Server、Sybase等数据库没有Sequence。

Sequence是数据中一个特殊存放等差数列的表,该表受数据库系统控制,任何时候数据库系统都可以根据当前记录数大小加上步长来获取到该表下一条记录应该是多少,这个表没有实际意义,常常用来做主键用。

1.   创建

1.1 要求

首先要有CREATE SEQUENCE或者CREATE ANY SEQUENCE权限。

1.2 语法

CREATE SEQUENCE sequence  //创建序列名称

       [INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1

       [START WITH n]    //开始的值,递增默认是minvalue 递减是maxvalue

       [{MAXVALUE n | NOMAXVALUE}] //最大值

       [{MINVALUE n | NOMINVALUE}] //最小值

       [{CYCLE | NOCYCLE}] //循环/不循环

       [{CACHE n | NOCACHE}];//分配并存入到内存中,可以提高访问效率

1.3 示例

 CREATE   SEQUENCE   LOCATIONS_SEQ 

           INCREMENT   BY   1 

           START   WITH   1 

           MAXVALUE   9900 

           MINVALUE   1

           CACHE 2; 

 SELECT LOCATIONS_SEQ.nextval FROM DUAL; --取下一个序列值

 SELECT LOCATIONS_SEQ.currval FROM DUAL; --取当前序列值

2.   修改

2.1 语法

alter SEQUENCE sequence  //序列名称

       [INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减默认是1

       [START WITH n]    //开始的值,递增默认是minvalue 递减是maxvalue

       [{MAXVALUE n | NOMAXVALUE}] //最大值

       [{MINVALUE n | NOMINVALUE}] //最小值

       [{CYCLE | NOCYCLE}] //循环/不循环

       [{CACHE n | NOCACHE}];//分配并存入到内存中

2.2 注意事项

(1)必须是序列的拥有者或对序列有 ALTER 权限

(2)只有将来的序列值会被改变

(3)改变序列的初始值只能通过删除序列之后重建序列的方法实现

三、删除

使用DROP SEQUENCE 语句删除序列,删除之后,序列不能再次被引用。

最新文章

  1. ABP教程-通过ABPboilerplate模版创建项目
  2. Entity Framework 6 Recipes 2nd Edition(10-4)译 -> 从存储过程返回一个复杂类型
  3. MapReduce的MapTask任务的运行源码级分析
  4. 实践一:Linux基础实践
  5. Oracle数据库导入导出总结(dmp文件)
  6. SSL、TLS协议格式、HTTPS通信过程、RDP SSL通信过程
  7. CVPR2015文章下载
  8. Linux c编程实例_例子
  9. linux开机启动增加tomcat启动项
  10. Zabbix探索:网络设备监控1
  11. 基于ACE的定时器模板类
  12. android80 HttpClient框架提交数据 get方式
  13. java_设计模式_模板方法模式_Template Method Pattern(2016-08-11)
  14. mysql与服务器之间的编码问题
  15. 新概念英语(1-71)He's awful!
  16. 记一次zabbix排错(数据库安装在其它服务器上)
  17. Spring配置文件中条件判断标签
  18. Python中的装饰器的简单介绍02
  19. 探索未知种族之osg类生物---呼吸分解之渲染遍历一
  20. 【原创】贡献一个JS的弹出框代码...

热门文章

  1. Centos6.4 + mysql-5.6.38-linux-glibc2.12-x86_64.tar 实现mysql主从复制
  2. 本周新学的 GUI绘图技术
  3. 深入学习Redis(3):主从复制
  4. ASP.NET Core中使用GraphQL - 最终章 Data Loader
  5. asp.net core系列 46 Identity介绍
  6. 第9章 设备授权端点(Device Authorization Endpoint) - IdentityModel 中文文档(v1.0.0)
  7. 4.JAVA-数组、String详解
  8. JavaSE:数据类型之间的转换(附常见面试题)
  9. Vue.js 学习笔记 第1章 初识Vue.js
  10. 如何只在IE上加载CSS样式表