导航

在oracle中建立自动递增的主键列(转)

Posted on 2009-06-13 16:20  阳光有约  阅读(279)  评论(0编辑  收藏  举报

一、创建自增序列:
create sequence cnet_wf_net_seq
 increment by 1
 start with 1
 maxvalue 999999;

二、创建触发器(设表的自增列为Id):
create or replace trigger cnet_wf_net_trigger
  before insert on cnet_wf_net
  for each row
declare
  s_id number;
begin 
  select cnet_wf_net_seq.nextval into s_id from dual;
  :new.id:=s_id;
end cnet_wf_net_trigger;
三、总结
通过上面两步,就会在表cnet_wf_net中的id中添加一个自动递增的主键列
cnet_wf_net_seq为自增序列
cnet_wf_net_trigger为触发器

 

注:本人添加一点

其实可以不用触发器,在INsert sql中直接取cnet_wf_net_seq的值即可

当然了通过触发器有触发器的好处 ,就是你不用在写sql中再去关注主键的递增了

但是如果用系列cnet_wf_net_seq 来获取值,则可以做一些向多个表 插入外键值的操作需要。这样插入操作时就不需要在想办法去获得主键的值了