Oracle中创建自增字段方法

在oracle数据库中,没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。

假设[表test]关键字段为id,建一个序列,代码为:

create sequence seq_test
minvalue 1     --最小值
maxvalue 99999999999  --最大值
start with 1   -- 从1开始计数 
increment by 1  -- 每次加几个
nocache    --没缓存
order;

 

建触发器的代码为:

create or replace trigger tri_test
  before insert on test  
  for each row
declare
  nextid number;
begin
  IF :new.id IS NULL or :new.id=0 THEN
    select seq_test.nextval
    into nextid
    from sys.dual;
    :new.id:=nextid;
  end if;
end tri_test;

 

关键字:

:NEW 和:OLD使用方法和意义,new 只出现在insert和update时,old只出现在update和delete时。在insert时new表示新插入的行数据,update时new 表示要替换的新数据、old表示要被更改的原来的数据行,delete时old表示要被删除的数据。

 

你可能感兴趣的:(Oracle中创建自增字段方法)