我希望能象建在access中的表一样,建立主键时候,就可以自动建立一个自动递增编号的字段.

解决方案 »

  1.   

    http://expert.csdn.net/Expert/topic/1188/1188814.xml?temp=.1089899
      

  2.   

    一个老话题: :-)http://expert.csdn.net/Expert/topic/1465/1465844.xml?temp=.93685551、建立序列:
    CREATE SEQUENCE checkup_no_seq
    NOCYCLE
    MAXVALUE 9999999999
    START WITH 2;2、建立触发器:
    CREATE OR REPLACE TRIGGER set_checkup_no
    BEFORE INSERT ON checkup_history
    FOR EACH ROW
    DECLARE 
      next_checkup_no NUMBER;
    BEGIN
      --Get the next checkup number from the sequence
      SELECT checkup_no_seq.NEXTVAL
      INTO next_checkup_no
      FROM dual;
      
      --use the sequence number as the primary key
      --for the record being inserted 
      :new.checkup_no := next_checkup_no;
    END;
      

  3.   

    其实也可以用函数。在建表的时候,将改字段的default值设为获取递增值的函数,在函数中返回序列的下一个值,当然函数也可以从其他途径(比如其他表等)得到当前递增的ID值。create table test
    ( id number(10) default func_abc,
      ...
    );create or replace function func_abc
    return number is
    begin
      return seq1.nextval;
    end;