您的位置:首页 > 数据库 > Oracle

ORACLE自增字段创建方法

2009-03-13 09:57 435 查看
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;//当前值

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: