oracle中如何创建表的自增ID(通过序列)

1、什么是序列呢?

    序列是一数据库对象,利用它可生成唯一的整数。一般使用序列自动地生成主码值。一个序列的值是由特别的Oracle程序自动生成,因而序列避免了在运用层实现序列而引起的性能瓶颈。

Oracle序列允许同时生成多个序列号,而每一个序列号是唯一的。 当一个序列号生成时,序列是递增,独立于事务的提交或回滚。容许设计缺省序列,不需指定任何子句。该序列为上升序列

,由1开始,增量为1,没有上限。

2、创建/修改序列的语法

1--创建序列的语法 -- 2 create sequence [user.]sequence_name 3 [increment by n] 4 [start with n] 5 [maxvalue n | nomaxvalue] 6 [minvalue n | nominvalue]; 7 8--修改序列的语法-- 9alter sequence [user.]sequence_name 10 [increment by n] 11 [maxvalue n | nomaxvalue] 12 [minvalue n | nominvalue];

3、序列参数说明

1INCREMENT BY: 指定序列号之间的间隔,该值可为正的或负的整数,但不可为0。序列为升序。忽略该子句时,缺省值为12 START WITH:指定生成的第一个序列号。在升序时,序列可从比最小值大的值开始,缺省值为序列的最小值。对于降序,序列可由比最大值小的值开始,缺省值为序列的最大值。 3 MAXVALUE:指定序列可生成的最大值。 4 NOMAXVALUE:为升序指定最大值为1027,为降序指定最大值为-15 MINVALUE:指定序列的最小值。 6 NOMINVALUE:为升序指定最小值为1。为降序指定最小值为-1026

4、序列示例

1--创建示例表 -- 2create table Student( 3 stuId number(9) not null, 4 stuName varchar2(20) not null, 5 stuMsg varchar2(50) null 6) 7 8 -- 创建序列 Student_stuId_Seq -- 9 create sequence Student_stuId_Seq 10 increment by 1 11 start with 1 12 minvalue 1 13 maxvalue 999999999; 14 15 -- 更改序列 Student_stuId_Seq-- 16 alter sequence Student_stuId_Seq 17 increment by 2 18 minvalue 1 19 maxvalue 999999999; 20 21 --获取序列自增ID -- 22 select Student_stuId_Seq.Nextval 自增序列ID from dual; 23 24 -- 删除序列 -- 25 drop sequence Student_stuId_Seq; 26 27 --调用序列,插入Student数据 -- 28 insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'张三'); 29 insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'李四'); 30 --查询插入的数据 -- 31 select * from Student

5、示例结果

1)创建序列后,执行获取序列自增ID

2)修改序列后,执行获取序列自增ID

https://www.cnblogs.com/xielong/p/8950999.html

点赞
收藏

评论区

加载中...

相关推荐

java中的序列化

一、什么是java序列化  序列化:将对象写入IO流反序列化:从IO流中恢复对象序列化机制允许将实现序列化的java对象转换为字节序列,这些字节序列可以保存在磁盘上也可以通过网络传输,字节序列也可以再恢复为原来的对象。序列化机制可以让对象不依附于程序独立存在。二、应用场景

java 商城系统源码分享

目的snowflake是常见的id(编号)生成算法,由时间戳业务id机器id序列号组合而成,在电商系统(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.javamall.com.cn%2F)中,用于订单号的生成、支付单号的生成等等。本发号器主要解决在容器化的部署情

序列生成函数

皕杰报表的序列生成函数是我们经常会使用的,在做报表的时候,经常需要生成一个序列,比如:字母序列a、b、c、d、e…皕杰报表本身提供了list函数来生成有限的枚举序列,使用如下:语法:list(valueExp1,valueExp2,valueExp3,……)参数说明:valueExp(n) 可以是字符型数据,整型数据,浮点型数据,布尔型数据或表达式举例说

unity 序列化和反序列化

什么是序列化和反序列化(1)序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程;. (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。序列化后的字节流保存了对象的状态以及相关的描述信息。序列化机制

Oracle序列Sequence

Oracle序列Sequence解释一.对于序列的定义序列(Sequence)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。 二.创建序列 需要权限,CREATESEQUENC

MySQL 序列使用:使用 AUTO_INCREMENT、获取AUTO_INCREMENT值

MySQL序列使用MySQL序列是一组整数:1,2,3,...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。本章我们将介绍如何使用MySQL的序列。使用AUTO\_INCREMENTMySQL