ORACLE自增字段创建方法

oracle没有ORACLE自增字段这样的功能,但是通过触发器(trigger)和序列(sequence)可以实现。 
假设关键字段为id,建一个序列,代码为: 
create sequence seq_test_ids 
minvalue 1 
maxvalue 99999999 
start with 1 
increment by 1 
nocache 
order; 
<!--[if !supportLineBreakNewLine]--> 
<!--[endif]--> 


CREATE SEQUENCE  seq_test_ids  MINVALUE 1 MAXVALUE 999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER  NOCYCLE ; 

建解发器代码为: 
create or replace trigger tri_test_id 
  before insert on test_table   
  for each row 
declare 
  nextid number; 
begin 
  IF :new.id IS NULLor :new.id=0 THEN 
    select seq_test_id.nextval 
    into nextid 
    from sys.dual; 
    :new.id:=nextid; 
  end if; 

end tri_test_id; 

不用触发器实现的简单方法:

select seq_test_ids.nextval into v_test_id from dual;//下个值

select seq_test_ids.currval into v_test_id from dual;//当前值

 

posted @ 2009-03-13 09:57  Jack.Zhang  阅读(395)  评论(0编辑  收藏  举报