Oracle里做了一个序列,目的是想实现其自动增加,但是当我将表中的记录删除后,发现序列值并不能从1开始增加,而是其他的无序的数字,怎样实现使用该序列的字段值按如下要求增长:
序列值从1开始增长,当表中序列值1被删除时,其他的序列值能自动变成1,比如原来是2的,变成1;原来是3的成为2……

解决方案 »

  1.   

    oracle的序列是不能这样做的;为何已经使用ID又被重新利用?
    一般情况下一个ID已经使用过,就不要再用了;
      

  2.   

    单一个序列是不能解决你这个问题
    你还必须写一个触发器,当删除记录激发这个触发器
    触发器完成如下操作:
    1.update tablename set 序号=序号-1 where 序号>你删除的序号
    2.把序列的下一个值减1,这一步具体我就不知了
      

  3.   

    oracle的序列是不能这样的,nextval后,就会一直增长,不会因为你删除了一列而利用,而且也没有什么必要
      

  4.   

    序列是不能这样实现的,nextval是递增,递增大家都明白...
    除非你不用序列,需使用触发器完成你递增任务,在每次删除一序列ID时,必须更新表中大部分序列号...
    虽然从这个可以实现,但是最不必要的..
      

  5.   

    在你对表进行删除操作时,同时维护一下你的序列 dba_sequences 
    update user_sequencesset last_number=(select count(0) from table_name)+1  where sequence_name = '序列名';