当前位置:数据库 > Oracle >>

oracle字段自增两段代码搞定

oracle字段自增两段代码搞定
 
(这几天做了个小小课程设计时用的是oracle数据库,第一次用,发现oracle和我们以前用的sql server 、mysql是有如此多不同的地方,下面是遇到的问题之一和解决方法,和大家分享下)
 
用惯sql server 或 mysql 的同志们都知道,要一个字段自增,在创建表时加一个auto_increment即可,可是oracle则不然,oracle表中字段并没有自增的属性,那id自增怎么办呢?
没事,还是那句话办法总是有D。好,不废话,直接上源码吧:
先创建一个序列:
[sql] 
CREATE SEQUENCE  SEQU_FANGWUXINXI_AUTOINC -- SEQU_FANGWUXINXI_AUTOINC 是序列名  
MINVALUE 1 -- 最小值  
MAXVALUE 9999999999999999999999999999 -- 最大值(这里是表示无上限)  
INCREMENT BY 1  -- 每次自增1  
START WITH 1 -- 从1开始  
nocache; -- 不用高速缓存  

 

 
再创建一个触发器:
[sql] 
create or replace   
trigger TRIG_FANGWUXINXI_AUTOINC  
  before insert on fangwuxinxibiao   -- fangwuxinxibiao 是表名  
  for each row  
declare  
  nextid number; -- 定义一个中间变量  
begin  
  IF :new.FANGWUID IS NULL or :new.FANGWUID = 0 THEN --FANGWUID 是字段名 其中的new是当前使用的表  
    select SEQU_FANGWUXINXI_AUTOINC.nextval into nextid from dual; -- dual是一个伪表,百度便知  
    :new.FANGWUID := nextid;  
  end if;  
end;  

 


CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,