請教ORACLE中自增列函數是什麼 
例如SQL SERVER中的identity(int,1,1)

解决方案 »

  1.   

    oracle是通过序列和触发器实现的--1.先创建序列
    scott@YPCOST> create sequence orderNo_seq start with 100 increment by 1 maxvalue 999;序列已创建。scott@YPCOST> create table test(id number,name varchar2(20));表已创建。--2、再加触发器
    scott@YPCOST> create or replace trigger insert_tri
      2  before insert on test
      3  for each row
      4  declare
      5  begin
      6   select orderNo_seq.nextval into :new.id from dual;
      7  end;
      8  /触发器已创建scott@YPCOST> insert into test(name) values('tom');已创建 1 行。scott@YPCOST> select * from test;        ID NAME
    ---------- --------------------
           100 tom
      

  2.   

    参考:
    ORACLE SEQUENCE 介绍
    http://blog.csdn.net/tianlesoftware/archive/2009/10/29/4745039.aspxOracle Sequence Cache 参数说明
    http://blog.csdn.net/tianlesoftware/archive/2010/11/08/5995051.aspx
      

  3.   

    oracle  有个类似sql的 自增列函数 sequence  
    可以通过代码在sqlpus  或plsql developer 中建立
    -- Create sequence 
    create sequence SQ_BROAD_ID
    minvalue 1
    maxvalue 9999999
    start with 1000001
    increment by 1
    nocache
    order;
    具体的每个参数的意义 自己查查 。
    也可以用plsql developer  进行图像界面建立
      

  4.   

    用序列就行
    sequence.nextVal就是获取序列的下一个值
    不过为了保证序列连续 每个表都要有一个对应的序列,不能共用