Oracle数据库中怎么实现Access数据库的ID(自动编号)的功能? 
要用到什么函数??
Access数据库的ID(自动编号)所对应的是Oracle的Rownum,但怎么把Rownum的值放入我新生成的Oracle字段ID中呢?
希望大家给个答案啊!!!
很急!!!

解决方案 »

  1.   

    建议使用sequence
    如果你只是加个编号,也可以
    select a.*, rownum from a
    但是要注意这个rownum不是对记录唯一的,而是对结果集编号而已
      

  2.   

    使用sequence。
    insert into tab(id) values (sequence.nextval);
      

  3.   


    怎么创建 sequencecreate sequence SEQ_1
    minvalue 1
    maxvalue 999999999999999999999999999
    start with 1
    increment by 1
    cache 20;
      

  4.   

    DROP SEQUENCE TEST.SEQ_STUDENT_ID;CREATE SEQUENCE SEQ_STUDENT_ID
      START WITH 5
      MAXVALUE 1E27
      MINVALUE 0
      NOCYCLE
      NOCACHE
      NOORDER;CREATE TABLE STUDENT_INFO
    (
      ID        NUMBER                              NOT NULL,
      NAME      VARCHAR2(50 BYTE),
      SEX       VARCHAR2(10 BYTE),
      AGE       NUMBER,
      BIRTHDAY  DATE,
      PHONE     VARCHAR2(20 BYTE)
    )
    CREATE OR REPLACE TRIGGER TG_STUDENT_INFO
    BEFORE INSERT ON STUDENT_INFO
    REFERENCING OLD AS old NEW AS new
    FOR EACH ROW
    BEGIN
      IF :new.ID IS NULL THEN
        SELECT SEQ_STUDENT_ID.NEXTVAL
        INTO   :new.ID
        FROM   dual;
      END IF;
    END;
      

  5.   

    create sequence myseq minvalue 1 maxvalue 999999 start with 1 increment by 1;create table t(id number);
    insert into t values(myseq.nextval);
      

  6.   

    以上说的都很正确,我总结下
    两个步骤;
    1.创建个SEQUENCE
    2.创建个BEFORE INSERT的TRIGGERThanks
    Hima
      

  7.   

    使用序列sequence了。
    取nextval值就是自动增长了
    create sequence myseq minvalue 1 maxvalue 999999 start with 1 increment by 1;create table t(id number);
    insert into t values(myseq.nextval);
      

  8.   

    用序列配合触发器就可以实现了 
    create sequence SEQ_1
    minvalue 1(最小值)
    maxvalue 999999999(最大值)
    start with 1 (最哪个数开始)
    increment by 1 (每次递增的数字)
    cache 20;