oracle数据库ID自增长--序列
什么是序列?在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自增长--序列的更多相关文章
- oracle数据库ID自增长
使用sequence --创建sequenceCREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 ...
- Oracle数据库学习 视图、序列及存储过程
视图(View) 视图也被称作虚表,也就是虚拟的表,是一组数据的逻辑表示. 视图对应一个select语句,结果集被赋予一个名字,也就是视图的名字. 视图本身不包含任何数据,它只是包含映射到基表的一个查 ...
- EF中创建、使用Oracle数据库的Sequence(序列)功能
** 背景 ** 项目中订单号原来的生成规则由日期加随机数组成,后期需求决定将订单号生成规则更改为生成日期加当天当前订单数. 每天的订单数都是从0开始的,每生成一个订单,订单数就应该加1.订单数应该是 ...
- ORACLE设置id自增长
1.创建序列create sequence sequence_userinfo start with 1 increment by 1 minvalue 1 maxvalue 999999 nocyc ...
- Oracle数据库迁移至PostgreSQL数据库问题及解决
Oracle数据库迁移PostgreSQL数据库问题及解决 目录 如何计划迁移数据库(现状及问题分析) 统计系统表及表功能 解耦公共表 建立数据库 迁移表结构 导入表数据 改SQL语法 保证数据时效性 ...
- 【解决】Oracle数据库实现ID自增长
Oracle数据库要实现ID的自增长,需要创建一个序列和触发器来实现,略微有一点点麻烦,但是也是可以解决的. 直接上地址,首先,http://www.wlcrane.com/article.aspx? ...
- oracle数据库表用序列实现主键自增长
原理注意:序列和触发器必须建立在同一个用户名下否则运行出错1.建立数据表create table 表名( userid number(10) primary key, ...
- Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长:
Hibernate注解映射sequence时出现无序增长问题+hibernate 映射 oracle ID自动增长: 通过Hibernate注解的方式映射oracel数据库的sequence主键生成器 ...
- PowerDesigner连接Oracle数据库建表序列号实现自动增长
原文:PowerDesigner连接Oracle数据库建表序列号实现自动增长 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties — ...
随机推荐
- 关于Fibonacci博弈的一些学习
关于Fibonacci博弈的一些学习 一道例题 问题 给定n(n≥2)个石头,游戏双方轮流取至少一个石子,取到最后一个石子的人算赢,但是要满足一下规则: 第一次取不能全部取完所有的石子. 设前一次取的 ...
- pyinstaller打包的exe太大?你需要嵌入式python玄学 惊喜篇
上篇讲到 pyinstaller打包exe太大的问题 CodingDog:pyinstaller打包的exe太大?你需要嵌入式python玄学 前提篇zhuanlan.zhihu.com 那既然py ...
- Android学习笔记之数据的Sdcard存储方法及操作sdcard的工具类
FileService.java也就是操作sdcard的工具类: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ...
- Tree and Permutation
Tree and Permutation 给出一个1,2,3...N的排列,显然全部共有N!种排列,每种排列的数字代表树上的一个结点,设Pi是其中第i种排列的相邻数字表示的结点的距离之和,让我们求su ...
- navicat_premium_x64最新版安装说明
先到官网下载最新的navicat http://www.navicat.com.cn/ 下载破解文件 链接: https://pan.baidu.com/s/1hhsh5Tfe4c_lQeyX8D-C ...
- 一致性hash算法Consistent Hashing
一致性hash算法Consistent Hashing 对于原有hash算法hash%n so... 1.话不多说直接上代码,原理或详解自行百度即可 import cn.pheker.utils.Ut ...
- java第二周小结
这是接触Java的第一周,了解这个语言的一些基础知识,下面是对这段时间重要知识点的汇总 一.Java是一种面向对象的语言 特点为:简洁高效.可移植性.适合分布式计算.健壮防患于未然的特性.多线程 ...
- [NN] Guided Backpropgation 可视化
Pytorch Guided Backpropgation Intro guided backpropgation通过修改RELU的梯度反传,使得小于0的部分不反传,只传播大于0的部分,这样到第一个c ...
- Windows10 家庭版安装 Docker Desktop
开启 Hyper-V 开启后会有提示让重启电脑,重启就 OK :: 创建cmd (echo pushd "%~dp0" echo dir /b %SystemRoot%\servi ...
- Advanced Message Queuing Protocol ( 1 ) 概述
The Advanced Message Queuing Protocol (AMQP)是一个标准开放的应用层的消息中间件(Message Oriented Middleware)协议.AMQP定义了 ...