您的当前位置:首页正文

简单三步轻松实现ORACLE字段自增

来源:画鸵萌宠网
简单三步轻松实现ORACLE字段⾃增

第⼀步:创建⼀个表。 复制代码 代码如下:create table Test_Table (

ID number(11) primary key, Name varchar(50) not null, Value1 varchar(50) not null )

第⼆步:创建⼀个⾃增序列以此提供调⽤函数。 复制代码 代码如下:

create sequence AutoID

start with 1 //根据需要⾃⼰可修改该数值 increment by 1 //步长值 minvalue 1 nomaxvalue

其实到此步骤,已经可以实现字段⾃增了。新增记录时看如下代码: 复制代码 代码如下:

Insert into Test_Table(ID,Name,Value1)values(AutoID.nextval,'xiyang','blog') 第三步:我们通过创建⼀个触发器,使调⽤的⽅式更加简单。 复制代码 代码如下:

create trigger AutoID_Trigger

before insert on Test_Table for each row begin

select AutoID.nextval into :new.ID from dual; end AutoID_Trigger;

该触发器在数据库注册了表格的侦听,即当指定表Test_Table插⼊记录之前,我们调⽤⼀个序列⽅法的nextval获得新值,插⼊⾃增字段。

在触发器中,我们调⽤了系统虚拟表dual,该表作为系统表的⼀部分,它内部只存储⼀条记录,我们可以通过该表获取与系统相关的⼀些信息或者进⾏⼀些简单的逻辑操作。

在该触发器中,我们使⽤了dual的⼀个经典⽤法,即获取定义序列的nextval⽅法。

通过上⾯三个步骤,我们就实现了⼀个表的字段⾃增,做插⼊操作时执⾏以下代码即可: Insert into Test_Table(Name,Value1) values('xiyang','blog') 通过在数据库中查询结果集,会发现ID列是⾃增的。

值得⼀提的是,在数据库操作中,触发器的使⽤耗费系统资源相对较⼤。如果对于表容量相对较⼩的表格我们可以忽略触发器带来的性能影响。考虑到⼤表操作的性能问题,

我们尽可能的减少触发器的使⽤。对于如上操作,我们完全可以抛弃触发器的使⽤,直接⼿动调⽤序列函数即可,这样可能在程序维护上稍微带来⼀些不便。

因篇幅问题不能全部显示,请点此查看更多更全内容

Top