ORACLE 实现 ID 自增

举报
Java李杨勇 发表于 2022/08/31 20:40:02 2022/08/31
【摘要】 oracle介绍Oracle是关系型的数据库,支持多用户、大事务量的事务处理。 Oracle基于客户端、服务器端。分布式、可移植。它的数据库的后台进程和内存结构的集合称为 Oracle 实例,然后默认Oracle 的内存结构包含系统全局区 (SGA) 、程序全局区 (PGA),安装好之后Oracle默认用户,SYS超级管理员,SYSTEM普通管理员,SCOTT普通用户。oracle每一个用户...

oracle介绍

Oracle是关系型的数据库,支持多用户、大事务量的事务处理。 Oracle基于客户端、服务器端。分布式、可移植。它的数据库的后台进程和内存结构的集合称为 Oracle 实例,然后默认Oracle 的内存结构包含系统全局区 (SGA) 、程序全局区 (PGA),安装好之后Oracle默认用户,SYS超级管理员,SYSTEM普通管理员,SCOTT普通用户。oracle每一个用户也可以是一个实例数据库。

为了提高功能的友好性,对查询结果加了一个序号,数据库没有存改字段,需要自动给查询结果加上自增的序号字段,由于是老系统数据库采用的是Oracle 12c的版本,oracle数据库不像mysql一样在建立表的时候设置自动增长列功能,需要自己建立序列来实现,开始想过生成设置UUID的缺点,但生成UUID也有很多缺点:

字符串占用的空间比较大、而且效率也比较低下、生成的ID是字符串随机数。做表关联关系的时候不好找、要做排序也不现实

所以通过创建序列(sequence)的方式来实现oracle id自增

–创建一个序列,序列名字叫seq_train_user_Identity,这里根据自己的业务表类执行操作就行

序列名的规则一般建议是以SEQ开头–然后下划线–后面跟你的表名
表名前的T_能够去掉,然后以_Identity标记结尾,用来表示我这个序列是用在数据库xx表Id自增字段的序列

具体命令

create sequence seq_train_user_Identity

INCREMENT BY 1

MINVALUE 1

MAXVALUE 999999999999

START WITH 1

NOCACHE

ORDER ;

具体详解:

INCREMENT BY 1    --每次添加几个。我这里是每次添加1

MINVALUE 1         --从1開始计数

MAXVALUE 999999999999  增长的最大值

[START WITH 1]       从几开始增长

NOCACHE     不缓存

扩展知识:

什么是序列呢?

序列是可用于生成唯一整数的数据库对象。通常,序列用于自动生成主代码值。序列的值由特殊的Oracle程序自动生成。因此,序列避免了在应用层实现序列所造成的性能瓶颈。Oracle通过特殊表序列实现Oracle自增量ID(mybatis实现自增量ID)

大家点赞、收藏、关注、评论啦 、打卡 文章 更新 275/  365天

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。