博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何实现 Oracle 的自增序列,两步轻松搞定
阅读量:4068 次
发布时间:2019-05-25

本文共 961 字,大约阅读时间需要 3 分钟。

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

如何实现 Oracle 的自增序列,两步轻松搞定

 

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

一、创建表结构

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

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

二、创建序列(sequence

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

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

三、创建触发器(trigger

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

如何实现 Oracle 的自增序列,两步轻松搞定

 

代码如下,

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', '王五');

我们看下结果,

如何实现 Oracle 的自增序列,两步轻松搞定

 

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

转载地址:http://uqoji.baihongyu.com/

你可能感兴趣的文章
linux串口操作及设置详解
查看>>
安装alien,DEB与RPM互换
查看>>
linux系统下怎么安装.deb文件?
查看>>
编译Android4.0源码时常见错误及解决办法
查看>>
Android 源码编译make的错误处理
查看>>
linux环境下C语言中sleep的问题
查看>>
ubuntu 12.04 安装 GMA3650驱动
查看>>
新版本的linux如何生成xorg.conf
查看>>
xorg.conf的编写
查看>>
启用SELinux时遇到的问题
查看>>
virbr0 虚拟网卡卸载方法
查看>>
No devices detected. Fatal server error: no screens found
查看>>
新版本的linux如何生成xorg.conf
查看>>
virbr0 虚拟网卡卸载方法
查看>>
Centos 6.0_x86-64 终于成功安装官方显卡驱动
查看>>
Linux基础教程:CentOS卸载KDE桌面
查看>>
hd cdnServer 51cdn / ChinaCache / ATS / Apache Traffic Server
查看>>
project web architecture
查看>>
OS + Unix HP-UX
查看>>
OS + Unix Solaris / openSolaris
查看>>