1.Oracle是通过序列(sequence)来处理自动增长列

用法:

create sequence my_seq --创建序列名:my_seq

start with 1 --从1开始

increment by 1 --每次增长1

maxvalue 999999 --nomaxvalue(不设置最大值) ---最大值

minvalue 1 --最小值

cycle --nocycle 一直累加,不循环 ;cycle 表示循环

nocache --缓存

cache 10 --表示一次产生10个号,

//但是使用缓存产生号,优点是提高效率,缺点是可能产生跳号

//上面表示从1开始,每次增长1,最大值为999999,之后又循环开始

---创建表

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

(1)可以为表中的列自动产生值

(2)由用户创建数据库对象,并可由多个用户共享

比如:system用户使用scott创建的序列,从什么开始增长?

答:接着scott里面的增长

(3)一般用于主键或唯一列

2.序列细节说明:

一旦定义了某个序列,可以使用currval,nextval

currval:返回sequence的当前值

nextval:返回增加sequence的值,然后返回sequence的值

比如:

序列名.currval:select 方案名.序列名.currval from dual;//用于查看当前序列是多少

序列名.nextval:select 方案名.序列名.nextval from dual;//用于查看当前序列的下一个值是多少

【什么时候使用sequence】

①不包含子查询,snapshot,view的select语句【用的少】

②insert语句的子查询中【用的较多】

③insert语句的values 中【用的多】

④update的set中【用的较多】

3:使用sequence注意事项:

①currval总是返回当前sequence的值,只有在第一次nextval初始化后,才能使用currval,

否则会出错。每使用一次nextval,就会增加一次sequence的值,同一个语句里面要是有多个nextval,其数值就是不一样的

②第一次nextval返回的值是初始值:随后的nextval会自动增加定义的increment by值,然后

返回增加后的值

③如果指定cache值,oracle就可以预先在内存里面放置一些sequence,这样存取会更快,

cache里面取完后,oracle自动再取一组到cache,使用cache或许会跳号,比如数据库突然不正常

down掉,cache中的sequence就会丢失,可以在定义sequence的时候,使用nocache防止这种情况

再来一个在MyBatis中使用的例子

CREATESEQUENCE SEQ_TARGETDB

MINVALUE1MAXVALUE99999999STARTWITH 1INCREMENTBY 1NOCYCLE

CACHE10;

select SEQ_TARGETDB.NEXTVAL as id from dualinsert into target_db (td_id,td_name,td_maxsize,td_size,td_type,

server_ip,server_port,create_dt,create_by,delflag,remark)

values (#{tdId,jdbcType=BIGINT},#{tdName,jdbcType=VARCHAR},#{tdMaxsize,jdbcType=BIGINT},

#{tdSize,jdbcType=BIGINT},#{tdType,jdbcType=BIGINT},

#{serverIp,jdbcType=VARCHAR},#{serverPort,jdbcType=VARCHAR},

sysdate,#{createBy,jdbcType=BIGINT},0,#{remark,jdbcType=VARCHAR})

oracle序列创建及使用,Oracle 序列创建及使用相关推荐

  1. oracle序列创建及使用,Oracle创建和使用序列

    Oracle创建和使用序列 1 语法 create sequence 序列名称 2 创建序列 SQL> create sequence emp_seq; Sequence created. 序列 ...

  2. EF中创建、使用Oracle数据库的Sequence(序列)功能

    ** 背景 ** 项目中订单号原来的生成规则由日期加随机数组成,后期需求决定将订单号生成规则更改为生成日期加当天当前订单数. 每天的订单数都是从0开始的,每生成一个订单,订单数就应该加1.订单数应该是 ...

  3. Oracle 创建表、定义序列以及创建触发器

    Oracle 创建表.定义序列以及创建触发器 1. 定义序列 CREATE SEQUENCE <序列名>[MAXVALUE N|NOMAXVALUE][MINVALUE N|NOMINVA ...

  4. Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  5. oracle 伪列访问序列,Oracle数据库对象,同义词、序列、视图、索引

    数据库对象简介 Oracle 数据库对象又称模式对象 数据库对象是逻辑结构的集合,最基本的数据库对象是表 其他数据库对象包括: 同义词是现有对象的一个别名. 简化SQL语句 隐藏对象的名称和所有者 提 ...

  6. oracle索引和同义词,关于Oracle序列、索引、同义词

    简单记录下Oracle序列.索引.同义词的相关知识. 一.常见的数据库对象 二.序列 序列: 可供多个用户用来产生唯一数值的数据库对象 自动提供唯一的数值 共享对象 主要用于提供主键值 将序列值装入内 ...

  7. Oracle其它数据库对象:视图、序列、同义词

    SQL> --视图: 由一个或者多个表组成的逻辑表 SQL> -创建一个视图,包含了10,20的员工信息 SQL> --创建一个视图,包含了10,20的员工信息 SQL> ed ...

  8. 分组后分页_SQL(约束、视图、分页、序列、索引、同义词、创建用户,为用户授权、执行计划的使用 数据的导入导出)...

    学习主题:SQL 学习目标: 掌握约束 掌握视图 修改表名与删除表 删除表中的列语句的语法结构是什么? 答:delete 表名from table where ; 删除表中的列语句的语法结构是什么? ...

  9. oracle sequence 不同 会话 不连续_序列 Sequence

    Sequence是一个数据库对象,多个用户可以从中生成唯一的整数,可以使用序列自动生成主键值. 生成序列号时,序列号将递增,独立于事务提交或回滚; 如果两个用户同时递增同一序列,因为序列号是由另一个用 ...

  10. oracle删除已创建的用户,ORACLE用户创建删除

    ●sqlplus登陆 sqlplus sys/isc@testgmmc as sysdba ●创建用户 create user testpoi3 IDENTIFIED by isc account u ...

最新文章

  1. R语言使用ggplot2包的快速可视化函数qplot绘制基础直方图实战
  2. SAP MM Movement Type 503的使用
  3. 标题:分数(2018C语言A组(1))
  4. 2015年12月书单推荐
  5. mysql数据库的增删改查
  6. 华为鸿蒙生态创新,鸿蒙生态不断扩大,华为创新性地提出“全屋智能”理念
  7. 论文被拒稿后怎么办?这些事情你要知道
  8. word2vec词向量 文本分类实现(TensorFlow版,算法TextCNN)
  9. 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)
  10. python第五次作业——陈灵院
  11. openfire mysql 乱码_Openfire:解决乱码问题
  12. leetcode之动态规划刷题总结1(Java)
  13. 做什么样的软件才能赚钱? 学什么样的知识才能赚钱? 肖舸老师
  14. neo4j 最短路径 java_Neo4j查询节点间最短路径
  15. 详解 Flutter engine多线程、Dart isolate和异步
  16. Word文档换台电脑打开后字体、排版等会发生变化的原因及解决方案!
  17. nodejs addon实现回调函数事件
  18. PHP抓取网页内容获得网页源代码
  19. 用Nonebot2搭建QQ机器人(一):我的学习经历(一)
  20. python毕业设计能做什么工作_用python可以做什么毕业设计项目|融资公司的主要业务...

热门文章

  1. 什么是NetBIOS协议
  2. 2020年报点评丨民生证券:在手订单充足,数字货币等新兴领域前景可期
  3. node_modules\typescript\lib 未指向有效的 tsserver 安装 将禁用TypeScript 语言功能
  4. 借款人无需支付利息,Sturdy的无息借贷模式有何特别?
  5. vue 预渲染 (进行SEO优化)
  6. x宝23大洋包邮的老式大朝华MP3播放器简单评测
  7. IPv6排障工具之ping6完整过程细节剖析
  8. linux机启动 工具下载,Linux liveusb creator(u盘启动盘制作工具) 2019电脑版v3.12.0
  9. 搬家系统APP的设计与实现
  10. 2021新款iMac将提供五种颜色 搭配自研CPU