ORACLE数据库中自动递增的实现

时间:2011-11-22 浏览:26次 来源:tonydon

假设有张表test[ id(number(18)), name(varchar2(32))]

其中的id字段我们希望他是自动递增的序列,但是ORACLE没有这种字段,需要用序列生成器和触发来实现:

首先需要创建一个序列生成器

-- Create sequence

create sequence TEST_SEQ

minvalue 1
maxvalue 999999999999999999
start with 2
increment by 1
nocache;

然后建立触发器,对插入的新记录自动插入序列号

create or replace trigger tri_test_auto_seq_id
before insert on test
for each row
declare
-- local variables here
begin
select test_seq.nextval into :new.id from dual;
end tri_test_auto_seq_id;

上一篇: 修改oracle11g内存占用 2012-01-11 22:57

下一篇: Oracle数据库标准版、企业版区别 2010-01-02 23:51