Oracle自增数据类型的实现方法

Oracle自增数据类型的实现方法

 

作者:张桂权

 

如果你经常使用Informix、MySQL等数据库,那么你会发现数据库系统本身提供了一种“自增的数据类”,比如Informix的SERIAL变量类型。你只需要在CREATE TABLE时将字段定义为SERIAL类型,就可以实现变量值的自动增长,使用起来非常方便。但是如果你使用的Oracle数据库,那么你就需要自己来实现这个机制了。其实,实现起来也很简单,你只需要创建一个SEQUENCE变量和一个基于目标数据库的TRIGGER(触发器),其他没有什么特别的地方。你甚至会发现Oracle的机制比Informix的机制更加灵活,因为你可以控制自增变量的起点和增量的大小。比如,你可以定义一个从1开始增长,每次增长5的自增机制(当然,这种设计一般没有任何使用价值)。以下用简单的学生记录表为例,说明如何进行Oracle自增机制的实现。

 

(1)创建基础表结构:

----------------------------------------

CREATE TABLE student

(

id NUMBER,

name VARCHAR2(40),

age NUMBER,

sex VARCHAR2(1),

address VARCHAR2(128),

hponeNumber VARCHAR2(16),

PRIMARY KEY(id)

);

 

(2)创建SEQUENCE变量:以1为基点,每次增1

CREATE SEQUENCE student_seq START WITH 1 INCREMENT BY 1;

 

(3)创建TRIGGER

CREATE OR REPLACE TRIGGER student_trigger

BEFORE INSERT ON student

FOR EACH ROW

BEGIN

SELECT student_seq.nextval INTO :new.id FROM dual;

END;

/

 

(4)现在自增机制已经建好了,只要你每往student表INSERT一条记录,id的值会自增1,其中自增的基点是1。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值