建立一个最小为1,最大为999999999的一个序列号会自动循环的序列create sequence  userid
increment by 1
start with 1
maxvalue 999999999
cycle;

解决方案 »

  1.   

    然后,insert into values(userid.nextval...)
      

  2.   

    Oracle 中的当前系统日期提取: sysdate
      

  3.   

    也可以用触发器实现;
    在创建了序列之后,可以创建一个触发器,触发器主体是:
    begin
     select sequencename.nextval into new.columnname from dual;
    end;
    务必在end之后加上;号,我是吃了好大亏才发现的!
      

  4.   

    相同问题提过N遍了,
    能否在FAQ中寻找答案?
      

  5.   

    楼上两位的意思我能理解了,但在具体操作上还有点问题。能给出一个简单的建表与建序列的过程吗?因为我不知道如果建立一个属于这个表的序列,比如上面给例子中create sequence userid是怎样与表结合的?这句语句是要和建表语句一起执行的吗?对于已经建立的表该如何操作?
      

  6.   

    Oracle中如何实现某一字段自动增加1?  
    软件环境: 
    1、Windows NT4.0+ORACLE 8.0.4
    2、ORACLE安装路径为:C:\ORANT实现方法: 
    建立一个最小为1,最大为999999999的一个序列号会自动循环的序列create sequence 序列名 
    increment by 1 
    start with 1 
    maxvalue 999999999 
    cycle;当向表中插入数据时,SQL语句写法如下:SQL> insert into 表名 values(序列名.nextval,列1值,列2值);
     
      

  7.   

    谢谢楼上的指点,我终于知道实现的方法了。看来还是比sql server要麻烦一点,因为sql server里不需要在插入记录语句里加入那个自增加的值,而oracle似乎是要把那个值给出来(值通过序列得到)再加入到记录中去,对于我是自动了,但想想其实对于表来说并不是自动的。估计是要按楼上的同志说的搞个触发器才行。
    再次感谢大家的热心帮助!