在Oracle数据库中,sequence等同于序列号,每次取的时候sequence会自动增加,一般会作用于需要按序列号排序的地方。

  1、Create Sequence

  (注释:你需要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限)

  CREATE SEQUENCE emp_sequence

  INCREMENT BY 1 —— 每次加几个

  START WITH 1 —— 从1开始计数

  NOMAXVALUE —— 不设置最大值

  NOCYCLE —— 一直累加,不循环

  CACHE 10;

  只要定义了emp_sequence,你就可以用使CURRVAL,NEXTVAL

  CURRVAL=返回 sequence的当前值

  NEXTVAL=增加sequence的值,然后返回 sequence 值

  例如:

  emp_sequence.CURRVAL

  emp_sequence.NEXTVAL

  可以使用sequence的地方:

  。 不包含子查询、snapshot、VIEW的 SELECT 语句

  。INSERT语句的子查询中

  。NSERT语句的VALUES中

  。UPDATE 的 SET中

  可以看如下例子:

  INSERT INTO emp VALUES

  (empseq.nextval, 'LEWIS', 'CLERK',7902, SYSDATE, 1200, NULL, 20);

  SELECT empseq.currval FROM DUAL;

  需要注意的是:

  第一次NEXTVAL返回的是初始值;随后的NEXTVAL会自动增加你定义的INCREMENT BY值,然后返回增加后的值。CURRVAL 总是返回当前SEQUENCE的值,但是在第一次NEXTVAL初始化之后才能使用CURRVAL,否则会出错。一次NEXTVAL会增加一次 SEQUENCE的值,所以如果你在同一个语句里面使用多个NEXTVAL,其值就会是不一样的。

  - 假如指定CACHE值,Oracle就可以预先在内存里面放置一些sequence,这样存取的快些。cache里面的取完后,Oracle自动再取一组 到cache. 使用cache或许会跳号, 比如数据库突然不正常down掉(shutdown abort),cache中的sequence就会丢失。 所以可以在create sequence的时候用nocache防止这种情况。

  2、Alter Sequence

  你需要有sequence的owner,或者拥有ALTER ANY SEQUENCE 权限才能改动sequence. 可以alter除start至以外的所有sequence参数。如果想要改变start值,必须 drop sequence 再 re-create .

  Alter sequence示例:

ALTER SEQUENCE emp_sequence INCREMENT BY 10 MAXVALUE 10000 CYCLE -- 到10000后从头开始 NOCACHE ;

  可以影响Sequence的初始化参数:

  SEQUENCE_CACHE_ENTRIES =设置能同时被cache的sequence数目。

  简单的Drop Sequence

  DROP SEQUENCE order_seq;

oracle的sequece的使用(主键自增长)的更多相关文章

  1. 更新oracle数据库表如何实现主键自增长

     在数据库中实现主键自动增长有利于我们做数据插入操作,在SQL SERVER上创建表时可以在int类型的字段后加上identity(1,1),该字段就会从1开始,按照+1的方式自增,将这个字段设置 ...

  2. Oracle - 使用序列+触发器实现主键自增长

    Oracle中的自增,不如Sql server那般方便. --.创建序列 CREATE SEQUENCE "TABLE_NAME"."SQ_NAME" MINV ...

  3. mybatis配置oracle的主键自增长

    引用自:https://hacpai.com/article/1405392025960 mysql.sqlserver等数据库本身带有主键自增长像auto_increment的功能可以直接使用 us ...

  4. Oracle实现主键自增长

    -- 主键设置:xx_id number(24) primary key 1 create sequence XX_seq --序列名称 increment by 1 -- 每次加几个 start - ...

  5. oracle 主键自动增长

    oracle 主键自动增长 2009-12-11 16:07:00|  分类: 数据库资料|字号 订阅     这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create tabl ...

  6. Oracle通过序列+触发器实现主键自增

    接触oracle没多久,在建表的时候发现还不会如何设置主键自动增长.和mysql的设置为AUTO_INCREMENT属性相比,要复杂很多,所以现在记录起来. 我使用的是序列+触发器的方式. 现在已经创 ...

  7. 【Oracle】【5】主键、外键管理

    前言: 1,事实上我是不使用外键的,所以本文只介绍主键 正文: (1)创建表的同时创建主键约束 create table STUDENT ( ID int , NAME varchar(8), AGE ...

  8. Oracle 设置主键自增长__Oracle

    转自:https://yq.aliyun.com/ziliao/258074 如果想在Oracle数据库里实现数据表主键自增,我们似乎没有办法像MySql般直接定义列的属性来实现.不过对于这个数据库的 ...

  9. oracle,mybatis主键自增长

    <insert id="insert" parameterType="resource"> <selectKey resultType=&qu ...

  10. Mybatis 操作数据库的主键自增长

    本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 crea ...

随机推荐

  1. dotnet core 项目

    项目 常用命令 我们使用dotnet core 命令行来创建项目及进行编译,发布等,比较常用的dotnet core 命令 如下: dotnet new [arguments] [options] 创 ...

  2. sort()的部分用法

    #include <iostream> #include <cstdio> #include <algorithm>//sort要包含的头文件 #include & ...

  3. spring+springmvc+maven+mongodb

    1.前言 最近项目开发使用到了spring+springmvc+maven+mongodb,项目中的框架是用springboot进项开发的,对于我们中级开发人员来说,有利有弊,好处呢是springbo ...

  4. express操作数据库

    Express 首页 入门 使用指南 API 中文手册 进阶话题 有用的资源 集成数据库 为 Express 应用添加连接数据库的能力,只需要加载相应数据库的 Node.js 驱动即可.这里将会简要介 ...

  5. asp.net 模拟CURL调用微信公共平台API 上传下载多媒体文件接口

    FormItem类 public class FormItem { public string Name { get; set; } public ParamType ParamType { get; ...

  6. cordova 框架下开发app推送

    cordova提供官方的push pluging,使用的是Google的GCM消息推送服务,一些网络原因,国内GCM可能不怎么好用.所以选择国内的第三方插件. 可供选择的有百度云推送,腾讯云信鸽,极光 ...

  7. define 和 const常量有什么区别?

    define在预处理阶段进行替换,const常量在编译阶段使用 宏不做类型检查,仅仅进行替换,const常量有数据类型,会执行类型检查 define不能调试,const常量可以调试 define定义的 ...

  8. Loadrunner11.0安装与简单使用

    公司开发了APP或者微信小程序啊什么的,都会先进行性能测试,而性能测试一般肯定会来测试接口的压测,并发.Loadrunner是一个很强大的测试工具,它是一种预测系统行为和性能的负载测试工具.通过以模拟 ...

  9. Selenium八大元素定位方式

    1.根据id来定位: import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.sele ...

  10. 【转】Linux学习(1)-常用快捷键、文件管理和查询

    原文链接:http://www.cnblogs.com/zhaopei/p/7397402.html 有话要说 为什么要用Linux?要用Linux的原因太多,想说说不完啊. 如果你说用Linux只是 ...