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

Wesley13
• 阅读 700

1、什么是序列呢?

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

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

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

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

--创建序列的语法 --
 create sequence [user.]sequence_name
    [increment by n]
    [start with n]
    [maxvalue n | nomaxvalue]
    [minvalue n | nominvalue];
    
--修改序列的语法--
alter sequence [user.]sequence_name
    [increment by n]
    [maxvalue n | nomaxvalue]
    [minvalue n | nominvalue];

3、序列参数说明

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

4、序列示例

--创建示例表 --
create table Student(
    stuId number(9) not null,
    stuName varchar2(20) not null,
    stuMsg varchar2(50) null
)
  
  -- 创建序列  Student_stuId_Seq --
 create sequence Student_stuId_Seq
 increment by 1
 start with 1
 minvalue 1
 maxvalue 999999999;
 
 -- 更改序列  Student_stuId_Seq--
 alter sequence Student_stuId_Seq
    increment by 2  
    minvalue 1
    maxvalue 999999999;
 
 --获取序列自增ID --
 select Student_stuId_Seq.Nextval 自增序列ID from dual;
 
 -- 删除序列 -- 
 drop sequence Student_stuId_Seq;
 
 --调用序列,插入Student数据 --
 insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'张三');
 insert into Student(stuId,Stuname) values(Student_stuId_Seq.Nextval,'李四');
 --查询插入的数据 --
 select * from Student

5、示例结果

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

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

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

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

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

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
2年前
java中的序列化
一、什么是java序列化  序列化:将对象写入IO流反序列化:从IO流中恢复对象序列化机制允许将实现序列化的java对象转换为字节序列,这些字节序列可以保存在磁盘上也可以通过网络传输,字节序列也可以再恢复为原来的对象。序列化机制可以让对象不依附于程序独立存在。二、应用场景
Wesley13 Wesley13
2年前
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) 可以是字符型数据,整型数据,浮点型数据,布尔型数据或表达式举例说
Wesley13 Wesley13
2年前
unity 序列化和反序列化
什么是序列化和反序列化(1)序列化是指把对象转换为字节序列的过程,而反序列化是指把字节序列恢复为对象的过程;. (2)序列化:对象序列化的最主要的用处就是在传递和保存对象的时候,保证对象的完整性和可传递性。序列化是把对象转换成有序字节流,以便在网络上传输或者保存在本地文件中。序列化后的字节流保存了对象的状态以及相关的描述信息。序列化机制
Wesley13 Wesley13
2年前
Oracle序列Sequence
Oracle序列Sequence解释一.对于序列的定义序列(Sequence)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。其主要用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值。 二.创建序列 需要权限,CREATESEQUENC
Wesley13 Wesley13
2年前
MySQL 序列使用:使用 AUTO_INCREMENT、获取AUTO_INCREMENT值
MySQL序列使用MySQL序列是一组整数:1,2,3,...,由于一张数据表只能有一个字段自增主键,如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。本章我们将介绍如何使用MySQL的序列。使用AUTO\_INCREMENTMySQL
Wesley13 Wesley13
2年前
MYSQL和ORACLE的一些区别
1.自动增长的数据类型处理MYSQL有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。ORACLE没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。CREATESEQUENCE序列号的名称(最好是表名序列号标记)INCREMENTBY1START
LeeFJ LeeFJ
1年前
Foxnic-SQL (10) —— DAO 特性 : 生成序列
在数据库层面,各个数据库对序列的支持是不一样的。大多数数据库可以为表指定一个自增的字段,但这种自增字段却很不利于数据的迁移。类似Oracle的数据库有专门的序列对象,但这种方式太独特,也不利于在产品层面的多数据库适配。基于这样的考虑,FoxnicSQL单独实现了基于存储过程的序列。
燕青 燕青
6个月前
Mac端电脑序列号查询工具:Serial Box for Mac 支持1
是一款专为Mac用户设计的序列号查询工具。它提供了大量的软件序列号,涵盖了各种Mac软件,包括操作系统、办公软件、图形设计软件等等。用户只需在SerialBox中输入所需的软件名称或关键字,即可快速查询到相应的序列号。此外,SerialBox还提供了一个方
燕青 燕青
6个月前
Mac序列号查询工具:KCNScrew
KCNScrew是一款序列号查询工具,它专门为MAC用户设计,是一款十分简单好用的序列号查找工具。KCNScrewPackformac内置强大的序列号数据库,包含数千款Mac软件序列号,大多数常用软件的序列号都可以在KCNScrewPackformac中找