Oracle数据库实现主键自增

Oracle不同于MySQL,MySQL只需要在Navicat等工具中点个自动递增按钮就能实现主键自增,Oracle需要创建自增序列才能实现

  • Oracle实现主键自增有多种方式,但是需要创建 自增序列 为前提
  • 下面演示一种最简单,也是个人常用的方式
  1. 创建自增序列:
create sequence 序列名
 increment by 1		--每次+1	
 start with 1		--从1开始
 nomaxvalue	 	--不限制最大值
 nominvalue	 	--不限制最小值
 NOCYCLE 	 	--一直累加
 cache 20;	 	--设置取值缓存数为20(默认值) 也可设置nocache - 表示不使用缓存

cache 缓存的作用:设置为20时,第一次新增时,会在Oracle服务器的缓存中,存储20个值,后续新增会直接从缓存中去取值,可以提高效率

缺点:如果缓存里的值还没用完Oracle数据库就意外宕机,会导致缓存失效,下一次新增时数据库会认为20个值用完了,会继续往下存储20个新值,最终会导致序列不连续

  1. 在创建表时使用自增序列:
CREATE TABLE userinfo (
  id nvarchar2(64)  DEFAULT 序列名.nextval,
  name nvarchar2(64) ,
  age number(3)
);
posted @ 2022-12-10 00:55  姜晓姜晓  阅读(2278)  评论(0)    收藏  举报