什么是序列?在mysql中有一个主键自动增长的id,例如:uid number primary key auto_increment;在oracle中序列就是类似于主键自动增长,两者功能是一样的,只是叫法不同而已。

在oracle中想要实现id自动增长只能用序列来实现。在oracle中,是将序列装入内存,可以提高访问效率。

1.)序列的创建

  create sequence 序列名称

  increment by n 每次增长多少 //系统默认值为1. 

  start with  n从几开始 //系统默认值为1.

  [maxvalue  n最大值|nomaxvalue]  //NoMaxValue:是系统对序列设置的默认值. 即指定升序序列的最大值为10的27次方.降序序列的最大值为-1.

  [minvalue n最小值|nominvalue] //同上

  [cycle |nocycle 是否循环]

  [cache  n缓存的数量|nocache]  //指定要保留在内存中整数的个数.默认缓存的格式为20个. 可以缓存的整数最少为2个. 可以缓存的整数个数最多为:Cell(maximum_num—minimum_num)/ABS(increment_num). 注:Cell(序列的最大上限值—最小下限值,)/ABS(每次自增的增量).

例如:create sequence person_pid_seq

           increment by 1

           start with 1

           maxvalue 1000

           nocycle

           nocache;

  可以直接创建,其他大的选项全部是默认值。例如:create sequence person_pid_seq;

2.)序列的操作

序列创建完成之后,所有的自动增长就都是由我们自己操作了,那么如果操作呢?提供了两种方式。

  2.1 nextval:取得序列的下一个值

  2.2 currval:取得当前序列的内容

注意:currval 需要再nextval调用之后才能使用

3.)序列的使用

    insert into person values(person_pid_seq.nextval,'name,'adress');//一般是利用nextval,让id保持一直递增。

4.)序列的删除

    drop sequence person_pid_seq;

5.)序列的注意事项

    由于序列是同auto_increment一样的,所有它是不会回头的,即使你删掉了数据,它的id永远不会回到以前,只会一直递增,例如,你有十条数据,你删了第十条,希望下一条的id从10开始,这是不可能的,除非你重新做。 

详情参考:https://blog.csdn.net/yongqingmiao/article/details/6753421

oracle数据库ID自增长--序列的更多相关文章

  1. oracle数据库ID自增长

    使用sequence --创建sequenceCREATE SEQUENCE emp_sequence      INCREMENT BY 1  -- 每次加几个      START WITH 1  ...

  2. Oracle数据库学习 视图、序列及存储过程

    视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...

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

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

  4. ORACLE设置id自增长

    1.创建序列create sequence sequence_userinfo start with 1 increment by 1 minvalue 1 maxvalue 999999 nocyc ...

  5. Oracle数据库迁移至PostgreSQL数据库问题及解决

    Oracle数据库迁移PostgreSQL数据库问题及解决 目录 如何计划迁移数据库(现状及问题分析) 统计系统表及表功能 解耦公共表 建立数据库 迁移表结构 导入表数据 改SQL语法 保证数据时效性 ...

  6. 【解决】Oracle数据库实现ID自增长

    Oracle数据库要实现ID的自增长,需要创建一个序列和触发器来实现,略微有一点点麻烦,但是也是可以解决的. 直接上地址,首先,http://www.wlcrane.com/article.aspx? ...

  7. oracle数据库表用序列实现主键自增长

    原理注意:序列和触发器必须建立在同一个用户名下否则运行出错1.建立数据表create table 表名(           userid number(10) primary key,        ...

  8. Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:

    Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长: 通过Hibernate注解的方式映射oracel数据库的sequence主键生成器 ...

  9. PowerDesigner连接Oracle数据库建表序列号实现自动增长

    原文:PowerDesigner连接Oracle数据库建表序列号实现自动增长 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties — ...

随机推荐

  1. lookup-method和replace-method注入

    官方文档说明: 在Spring5核心的1.4.6章节 在大多数应用程序方案中,容器中的大多数bean都是 singletons .当单例bean需要与另一个单例bean协作或非单例bean需要与另一个 ...

  2. event.stopPropagation()和event.preventDefault(),return false的区别

    我写公司的官网遇到一个问题,轮播图的上一层有一块内容,用鼠标拖动那块内容的时候下一层的轮播图也会跟着拖动,而上面的那层的内容是不会动的,我想这就是冒泡事件在作祟了吧 跟冒泡事件相关的,我想到三个: 1 ...

  3. Spring Boot教程(十七)属性配置文件详解(2)

    通过命令行设置属性值 相信使用过一段时间Spring Boot的用户,一定知道这条命令:java -jar xxx.jar --server.port=8888,通过使用–server.port属性来 ...

  4. python相关遗漏知识点补充

    python中的相关帮助命令 假设s是一个字符串, 那么dir(s)可以列出字符串对象的所有属性(方法也是函数属性),其中有下划线的部分与类重 载有关,用来表示python实现细节,没有下划线的属性是 ...

  5. Java九种基本数据类型,以及他们的封装类

    基本类型 大小(字节) 默认值 封装类 byte 1 (byte)0 Byte short 2 (short)0 Short int 4 0 Integer long 8 0L Long float ...

  6. SecureCRT通过密钥登录

    转载  https://blog.csdn.net/langkeziju/article/details/53024031 说明:一般的密码方式登录容易被密码暴力破解.所以一般我们会将 SSH 的端口 ...

  7. How do I add a simple onClick event handler to a canvas element?

    How do I add a simple onClick event handler to a canvas element? When you draw to a canvas element, ...

  8. p3863 序列

    分析 按照时间为下标分块 块内按照大小排序 每次整块整体修改半块暴力重构即可 代码 #include<bits/stdc++.h> using namespace std; #define ...

  9. WPF C# 创建缩略图

    不太精确的方法: public bool ThumbnailCallback() { return false; } private void CreateThumb(int toWidth) { S ...

  10. windows安装程序制作

    作为一个学计算机的,现在才知道那些安装软件都是用软件封装工具封装起来的. 我们写好exe以后可以下载一个Inno setup5 对其打包成可安装的软件,期间可加入图标,readme,等等一些东西.