oracle数据库表实现自增主键的方法实例

 更新时间:2022年06月23日 08:54:15   作者:leaf__yang  
Oracle数据库中没有自增字段,我们可以通过创建序列和触发器的方式,间接地实现自增的效果,下面这篇文章主要给大家介绍了关于oracle数据库表实现自增主键的相关资料,需要的朋友可以参考下

一、前言

几天建表需要用到自增主键,于是使用序列(sequence)和触发器(trigger)来实现主键自增,在网上查了一些知识,顺便记录下;

二、实现主键自动增长

1、创建表格

 CREATE TABLE "APP_COMM_T"
   (    
    "ID" NUMBER,
    "BASE_KEY" VARCHAR2(50 BYTE),
    "BASE_NAME" VARCHAR2(100 BYTE),
    "BASE_DESC" VARCHAR2(50 BYTE),
    "BASE_TYPE" VARCHAR2(10 BYTE),
    "BASE_SON" VARCHAR2(1 BYTE),
     CONSTRAINT "APP_COMM_T_PK" PRIMARY KEY ("ID")
   )

注:必须标明ID为主键

2、创建自增序列

create sequence SEQ_APP_COMM_T
 minvalue 1 
 maxvalue 999999   
 increment by 1    
 start with 1;

创建序列参数格式描述:

CREATE SEQUENCE SEQNAME //序列名字

MINVALUE 1 //最小值;设置NOMINVALUE表示无最大值

MAXVALUE 1.0E20 //最大值;设置NOMAXVALUE表示无最大值

INCREMENT BY 1 //每次自增1, 也可写非0的任何整数,表示自增,或自减

START WITH 1 //以该值开始自增或自减

3、创建触发器

 create trigger TRIG_APP_COMM_T      
before insert on APP_COMM_T
for each row   
begin       
select SEQ_APP_COMM_T.nextval into :new.id from dual;  
end; 

创建触发器描述:

before insert on APP_COMM_T

/*触发条件:当表APP_COMM_T执行插入操作时触发此触发器*/

for each row   /*对每一行都检测是否触发*/ 

begin       
/*触发后执行的动作,在此是取得序列SEQ_APP_COMM_T的下一个值插入到表APP_COMM_T中的id字段中*/

4、测试新增语句

已实现自增无需添加主键id

INSERT INTO APP_COMM_T (BASE_KEY,BASE_NAME,BASE_DESC,BASE_TYPE,BASE_SON)
VALUES('B', 'ADMIN','賬號類型','AccountType','N');

总结

到此这篇关于oracle数据库表实现自增主键的文章就介绍到这了,更多相关oracle数据库表自增主键内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • PL/SQL number型数据

    PL/SQL number型数据

    PL/SQL number型数据...
    2007-03-03
  • oracle查询字符集语句分享

    oracle查询字符集语句分享

    这篇文章主要介绍了oracle查询字符集的语句,查看国家字符集,查看oracle server端的字符集,需要的朋友可以参考下
    2014-02-02
  • 解析Oracle 8i/9i的计划稳定性

    解析Oracle 8i/9i的计划稳定性

    解析Oracle 8i/9i的计划稳定性...
    2007-03-03
  • Oracle最新面试题及答案整理大全

    Oracle最新面试题及答案整理大全

    好久没有给大家发面试题了,最近收集了一套Oracle的面试题,特地整理出来分享给大家,这篇文章主要给大家介绍了关于Oracle最新面试题及答案整理大全的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-06-06
  • Oracle中TIMESTAMP的几种类型介绍与实例

    Oracle中TIMESTAMP的几种类型介绍与实例

    我们都知道date和timestamp都是对日期和时间的表示,只是两种类型的精确度不同,前者精确到秒,后者精确到小数秒(fractional_seconds_precision),可以是 0 to 9,缺省是6。这篇文章主要介绍了Oralce中TIMESTAMP的几种类型。有需要的朋友们可以参考借鉴。
    2016-12-12
  • ORACLE 10g 安装教程[图文]

    ORACLE 10g 安装教程[图文]

    刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事,必先利其器。我们开始吧!
    2009-05-05
  • oracle数据库慢查询SQL实例详解

    oracle数据库慢查询SQL实例详解

    一般的业务系统如果遇到性能问题,绝大部分都是来自数据库的,有的业务一个查询执行时间好几秒,这就是我们说说的SQL慢查询,这篇文章主要给大家介绍了关于oracle数据库慢查询SQL的相关资料,需要的朋友可以参考下
    2024-06-06
  • Oracle安装过程中物理内存检查及临时temp空间不足问题解决

    Oracle安装过程中物理内存检查及临时temp空间不足问题解决

    Oracle安装过程物理内存检查及临时temp空间不足的情况,想必有很多的朋友都有遇到过吧,下面与大家分享下具体的解决方法,感兴趣的朋友可以参考下哈
    2013-07-07
  • 详解如何删除Oracle数据库临时表空间

    详解如何删除Oracle数据库临时表空间

    因生产环境磁盘空间不足,影响了业务,短时间内无法扩容磁盘,经过排查发现,可以释放temp临时表空间来临时释放部分空间,本文记录了如何释放临时表空间的详细操作步骤,需要的朋友可以参考下
    2024-03-03
  • Oracle数据加密方法分析

    Oracle数据加密方法分析

    这篇文章主要介绍了Oracle数据加密方法,实例分析了Oracle基于md5算法的数据加密技巧,需要的朋友可以参考下
    2016-09-09

最新评论