这个问题怎么还在问呢,搜索一下论坛,论坛中相关的帖子Oracle没有sybase的那种自增字段的功能,要想实现这种功能需要:
1、先建一个sequence,实现增的功能
2、为表的insert建一个触发器

解决方案 »

  1.   

    http://search.csdn.net/expert/topic/61/6102/2003/6/22/1943033.htm
      

  2.   

    create sequence sq_name
    increment by 1 
    start with 1 
    maxvalue 999999999; 当向表中插入数据时,SQL语句写法如下:
    SQL> insert into 表名 values(sq_name.nextval,列1值,列2值); 
     
      

  3.   

    ORACLE没有增量字段,只能通过序列+触发器实现。。
      

  4.   

    drop table foo; create table foo( 
      id varchar2(20) 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 to_char(foo_seq.nextval) into :new.id from dual;
    end bifer_foo_id_pk ;
    / insert into foo(data) 
      values('Chirstopher'); insert into foo(id,data) 
      values(5,'Sean'); select * from foo; 
      

  5.   

    我顺便 提一下,是直接用seq.nextval写值呢,还是建trigger来生成,做trigger会不会影响系统效率呀
      

  6.   

    序列+触发器
    友情UP---too~~~
    好用!
      

  7.   

    加一个自动增加的id号
    第一种方法:
    第一步:创建SEQUENCE
    create sequence s_country_id increment by 1 start with 1 maxvalue 999999999;
    第二步:创建一个基于该表的before insert 触发器,在触发器中使用该SEQUENCE
    create or replace trigger bef_ins_t_country_define
    before insert on t_country_define
    referencing old as old new as new for each row
    begin
    select s_country_id.nextval into :new.country_id from dual;
    end;
    /