使用sequencecreate sequence xxx start with 1 .....
insert into t1 values (xxx.nextval,.....)

解决方案 »

  1.   

    rowid是Oracle中缺省的一个隐藏字段,记录该条记录的地址的
    如果要实现你所说的那种功能,用楼上的序列即可以了
      

  2.   

    如果我有几十个表,每个表都有id的话,则我需要创建几十个SEQUENCE,并且还要记住表与序列名之间的对应关系,是不是?
      

  3.   

    你可以这样做:
      create sequence 序列名 increment by 1 start with 1 maxvalue 1000000 minvalue 1 
    两种方式调用:
       1,在编程语言里使用:序列名.nextVal来引用这个值。
       2,使用触发器,create trigger 触发器名字 before insert on 表名(你要拖入的表名)
    for each row
    begin
       select 序列名.nextVal into :new.*** from dual;
    end;
    注:
    ***为你定义的主键列,使用触发器,在编程语言中可以不用显示的写出怎样调用触发器,这是Oracle的工作。