ORACLE 实现 ID 自增
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天
- 点赞
- 收藏
- 关注作者
评论(0)