在实际项目开发过程中,设计数据库表时经常遇到需要主键自增的场景。那如何实现Oracle的主键自增呢,这里我们记录一种最常用的方式:sequence + trigger

就是利用Oralce的序号和触发器来实现字段的自增,下面直接来看一个完整的例子。

一、创建表结构

这里我们简单创建一张表做例子,其中表中的id字段就是我们后面准备用来作为自增的字段。

create table T_EMP(ID NUMBER not null,EMP_CODE VARCHAR2(64),EMP_NAME VARCHAR2(64));

二、创建序列(sequence)

这里创建自增序列,用于后面和上表的关联。

CREATE SEQUENCE T_EMP_SEQUENCEMINVALUE 1 --最小值NOMAXVALUE --不设置最大值START WITH 1 --从1开始计数INCREMENT BY 1 --每次加1NOCYCLE --一直累加,不循环NOCACHE; --不建缓冲区

三、创建触发器(trigger)

创建触发器,把表和序列关联起来,并设定每当表中新增数据的时候触发。

代码如下,

CREATE OR REPLACE TRIGGER T_EMP_TRIGGER BEFORE INSERT ON T_EMP FOR EACH ROW WHEN(NEW.ID IS NULL)BEGIN  SELECT T_EMP_SEQUENCE.NEXTVAL INTO:NEW.ID FROM dual;END;

四、测试

上面sequence和trigger都创建好之后,就可以添加数据测试了。这里我们直接insert几条数据,注意看id字段的变化就可以了。

INSERT INTO T_EMP (EMP_CODE, EMP_NAME)VALUES ('zhangsan', '张三');INSERT INTO T_EMP (EMP_CODE, EMP_NAME)VALUES ('lisi', '李四');INSERT INTO T_EMP (EMP_CODE, EMP_NAME)VALUES ('wangwu', '王五');

我们看下结果,

从上图看出,已经实现表中id字段的自增,大功告成。

jdbc 自增id 原理_如何实现 Oracle 的自增序列,两步轻松搞定相关推荐

  1. jdbc 自增id 原理_给“小白”漫画+图示讲解MyBatis原理,就问香不香!

    MyBatis一款后起之秀的持久层框架ORM,支持自定义SQL.存储过程和高级映射,相对于Hibernate算是半自动化的框架,在国内行业内非常流行. 常规的JDBC操作,配置相应的数据库连接的信息, ...

  2. jdbc 自增id 原理_面试被问分布式ID怎么办? 滴滴(Tinyid)甩给他

    点击" 程序员内点事 "关注,选择" 设置星标 " 坚持学习,好文每日送达! 引言 接着<一口气说出 9种 分布式ID生成方式,面试官有点懵了>来继 ...

  3. python编程midi键盘按键错乱_电脑键盘按键错乱怎么回事?几步轻松搞定

    电脑键盘是把文字信息的控制信息输入电脑的通道,从英文打字机键盘演变而来的,当它最早出现在电脑上的时候,是以一种叫做"电传打字机"的部件的形象出现的.在我们使用电脑键盘时不免出现点小 ...

  4. 抽奖随机滚动_手把手教你制作EXCEL抽奖器,只需两步轻松搞定

    [例一]利用CHOOSE函数和RANDBETWEEN函数进行抽奖设置.如下图: 目的:在B列随机生成1-50的随机整数,取号码末尾数值,对应奖品,当末尾数值大于5时,为空奖. 操作: 第一步:在B2单 ...

  5. mysql自增id原理_《MySQL自增ID》告诉你不为人知的“秘密”......

    原标题:<MySQL自增ID>告诉你不为人知的"秘密"...... 作者:Sunshine Koo 1.概述 " MySQL数据库是最常使用的数据库之一,我们 ...

  6. iphone照片永久删除怎么恢复_怎么恢复删除的照片?专业数据恢复软件轻松搞定...

    怎么恢复删除的照片?照片相信对大家来说也都并不陌生,不管是旅游还是聚会,很多人往往也都会随手一拍,并将这些照片作为留恋.所以现在的生活中,用于拍照的设备也都越来越多,同时很多人对于所拍照片的清晰度也有 ...

  7. 苹果手机数据转移到新手机_买了新手机,数据迁移用它轻松搞定

    随着小米10和Redmi K30 Pro等新机的诞生,许多用户都更换了新手机,我们拿到新手机第一步,一般都是在考虑如何将旧手机的一些数据转移到新手机,以小米手机为例,有的可能会选择从小米云服务恢复数据 ...

  8. java 面试 框架_这份java集合框架面试题,轻松搞定面试官!

    集合框架 1. ArrayList 和 Vector 的区别. 这两个类都实现了 List 接口(List 接口继承了 Collection 接口),他们都是有序集 合,即存储在这两个集合中的元素的位 ...

  9. captura录屏发生了一个错误_录屏教程的方法有哪些?学会这两种轻松搞定

    录屏教程的方法有哪些?在日常的工作以及生活当作,录屏教程的需求是经常需要做的.比方说:工作的时候,需要录屏新产品操作教程.生活中需要录屏学习基础教程等等.所以,对于录屏教程能够找到一个好用的方法是非常 ...

  10. linux 切换pip路径_【Python基础】PIP 镜像源配置轻松搞定

    pip 是 python 必不可少的的包管理工具,但是要在国内用得爽,必须要配置镜像源. 有哪些镜像站可用,以及如何配置,网上都有很多分享了. 我常用的是 阿里云镜像站. 这里有一点比较麻烦的地方,就 ...

最新文章

  1. Windows7在Notepad++中配置Python+OpenCV
  2. 多媒体计算机系统是能进行获取,第六章 7 多媒体计算机系统.pdf
  3. java_OA管理系统(一):Servlet总结案例仿网络聊天室
  4. 抓rtmp推流地址_如何实现摄像机竖屏直播推流?
  5. 前端性能优化:使用Data URI代替图片SRC
  6. android 蒙版图片带拖动_Android实现蒙版弹出框效果
  7. 电子计算机哪几部分组成的,电子计算机由哪几部分构成?
  8. c语言传址函数,关于c语言函数传址的规定
  9. 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包
  10. 头文件自包含是什么意思_女朋友发了一张这样的自拍给我,说想我了,她这是什么意思呢?...
  11. Android 开发即时聊天工具 YQ 《更新》(源码下载)
  12. maxscale连接mysql_MaxScale实现mysql读写分离,负载均衡
  13. 少儿计算机基础知识,学会这三个小知识,轻松入门少儿编程
  14. kaggle篇章二,新手入门泰坦尼克号的幸存者预测实验的超详细全过程记录
  15. 解决 input 输入框在 iOS 系统中无法输入内容
  16. 决胜经典算法之选择排序
  17. 闲人闲谈PS之二十八——PS模块底层架构设计初探
  18. 网页CAD开发快速入门
  19. 检测QQ是否开通微信
  20. 嵌入式Linux开发-在6818开发板上显示图案

热门文章

  1. T-SQL笔记1:SELECT及SELECT高级应用
  2. Atlas Control Toolkit更新发布V1.0.60914.0
  3. 7.SOA架构:服务和微服务分析及设计--- REST服务及微服务的服务API于契约设计
  4. 1.企业安全建设指南(金融行业安全架构与技术实践) --- 企业信息安全建设简介
  5. 31.卷1(套接字联网API)---流
  6. 1.卷1(套接字联网API)---简介
  7. 9.运输层(3)---TCP
  8. 62. 拆分初始化负载
  9. 7. 代码中特殊的注释技术——TODO、FIXME和XXX的用处
  10. 问题:document.documentElement与document.body的区别