首页 > 数据库 >Oracle数据库实现主键自增

Oracle数据库实现主键自增

时间:2022-12-10 01:11:35浏览次数:35  
标签:自增 缓存 20 -- 序列 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)
);

标签:自增,缓存,20,--,序列,Oracle,主键
From: https://www.cnblogs.com/qzzzz/p/16970658.html

相关文章

  • oracle报错:java.sql.SQLException: An attempt by a client to checkout a Connection
    服务器在跑压力测试,测试的并发大约是3200,(每次数据上传需要两次数据库操作,更新1条记录,批处理插入10条记录,可认为并发为更新3200,插入32000),每10s执行一次,大约跑了两天(周五......
  • oracle数据库实现分页查询
    SELECT*FROM ( SELECT T.*, ROWNUMRN FROM (SELECT*FROM表名WHERE条件)T WHERE ROWNUM<=((currentPage-1)*pageSize+pageSize) )......
  • oracle数据库最后恢复的一招
    如果备份没做好,啥都没的话,找ORACLE很贵,国内有牛人的这个站点可以帮下忙,但也是收费的拉​​​​​......
  • ON DUPLICATE KEY UPDATE 导致mysql自增主键ID跳跃增长
    一.问题点:1.如果mysql表只是设置了联合主键且不包含自增的id,则使用ONDUPLICATEKEYUPDATE不会有问题2.如果mysql表设置了自增主键id,则使用ONDUPLICATEKEYUP......
  • Oracle 数据库锁表问题及相关解决方法
    Oracle数据库锁表问题及相关解决方法问题描述:今天在公司运行服务的时候,需要查询300多万的数据,再进行排序之后放到kafka的消息队列中,供flink进行消费。在服务器上直接......
  • Oracle的LAST_DAY函数
    原文地址:https://blog.csdn.net/WuLex/article/details/80855523Oracle中last_day()函数的用法last_day(time):返回指定日期所在月份的最后一天;查询当前月份的最后一天:......
  • Maven - oracle ojdbc jar包报错:Could not find artifact com.oracle:ojdbc8
    oracleojdbcjar包报错:Couldnotfindartifactcom.oracle:ojdbc8 在IDEA中引入一个新项目时,由于项目中引入了如下依赖:<dependency><groupId>c......
  • oracle每日挑战-第二天
    当发出altertabletabaddprimarykey(object_id)usingindexind_tab_object_id;命令,在tab_p表的object_id列上创建主键约束,并指定使用此前已事先创建好的,名为ind_ta......
  • oracle - 数据库版本说明
    1998年Oracle8i:i指internet,表示oracle向互联网发展,8i之前数据库只能对应1个实例2001年Oracle9i:8i的升级,性能更佳,管理更人性化2003年Oracle10g:g指grid,表示采用网格计算的......
  • springboot集成kettle实现对接oracle数据
    简单记录一下springboot引用kettle对接数据第一步(这一步讲述了下载kettle、创建数据库连接、转换等,如果这一步会的可以略过,直接看第二步)先从kettle官网下载kettle,官网地......