先创建一个序列:
create sequence seq1 
start with 1
increament by  1;然后;
create trigger tri_on_ins
before insert 
on table_name
for each row
begin
select seq1.nextval into :new.id;
end;
/

解决方案 »

  1.   

    先创建一个序列:然后写入表的时候序列字段用seq.nextval就可以了
      

  2.   

    在oraclek中,为了方便我常常用触发器及序列结合起来实现,下面就是一个示例,希望对兄弟们有帮助 
    先建表、再建序列、然后是触发器,最后测试============================================= 
    --为主键指定序列编号 
    --2003-10-8 15:53 
    ============================================= conn scott/tiger@powermis drop table foo; create table foo( 
      id number primary key, 
      data varchar2(100)); create sequence foo_seq; create or replace trigger bifer_foo_id_pk 
      before insert 
        on foo 
        for each row 
    begin 
      select foo_seq.nextval into :new.id from dual; 
    end; 
    / insert into foo(data) 
      values('Chirstopher'); insert into foo(id,data) 
      values(5,'Sean'); select * from foo;
      

  3.   

    oracle没有自动编号这个说法:只能通过自己编,或者使用序列来实现。