几点吧:
1、maxvalue设为很大其实也没什么关系的,当然不会点更多空间,因为它是存在数据字典中的一条记录,也没什么影响速度的可能,这个不必担心。
2、我认为你的设计有问题,也就是你对pk的设计有问题 ,你不能单单的用sequence生成的什就做为pk了,生成唯一值的方法很多的,
比如to_char(sysdate,'yyyymmddhh24miss')||to_char(sequence1.nextval),这时你可以把这个序列设为cycle了。

解决方案 »

  1.   

    hrb_qiuyb:
       我觉得你第二点说的蛮好的,是一个非常好的方法,虽然每次生成的时候有点繁琐,但是不失为一个很好的方法。
       欢迎大家继续讨论.......
      

  2.   

    哦,设置你认为尽可能大的值作为极限值。不知道能不能满足楼主的要求,序列数值可以循环使用。
    CYCLE item 
    Specify CYCLE to indicate that the sequence continues to generate values
    after reaching either its maximum or minimum value. After an ascending sequence
    reaches its maximum value, it generates its minimum value. After a descending
    sequence reaches its minimum, it generates its maximum.
    NOCYCLE item 
    Specify NOCYCLE to indicate that the sequence cannot generate more
    values after reaching its maximum or minimum value. This is the default.
      

  3.   

    哦,不好意思,没有看清。hrb_qiuyb(大森林) 第二条说得不错。
    我想了一下,觉得还是可以检索当前序列种空缺的重用。就是你到达某一个数值后,最后找在某一范围内的当前不存在的数值使用。不过要是你的数据量序列要用number(20),我的估计就行不通,主要速度跟不上。
    呵呵,我觉得没那么恐怖吧?
      

  4.   

    hammer_shi
       你说的不错,找那些已经删除掉的数据,序列可以回收利用的再用,不过这有点困难,耗的时间和功夫反而变多了很多
      

  5.   

    我就使用hrb_qiuyb(大森林) 说的方法,系统的资源总是有限的,所以要在设计时注意了
      

  6.   

    如果事情已经发生了,就是说在生产数据库上,序列号已经达到最大值了。
    可以删除此序列号,重建同名序列号,然后设置start with 和maxvalue.
    这样就可以连续了。
    总之在设计时就该考虑到这些问题。俺觉得序列号是有好处,但不要滥用,
    俺觉得滥用序列号是一种取巧的方法了。
      

  7.   

    qinminglei:
      你这种说法的确是对的。
      不过等发现这种问题了,才去解决,我觉得这说明在设计结构上
    本身就有问题的,当然这个问题不大,用你这种方法可以轻易解决。
      

  8.   

    CREATE SEQUENCE USERID INCREMENT BY 1 START WITH 1 
        MAXVALUE 1.0E28 MINVALUE 1 CYCLE 
        NOCACHE NOORDER;select  to_char(sysdate,'yyyymmdd') || lpad(USERID.nextval,4,'0') into :new.yyghno from dual;一般这样设计,允许它循环,用日期限定它唯一
      

  9.   

    刚才我在选择select seq.currval from dual的时候,
    每次当我刚勇sql/plus登录进的时候,执行上面这个命令就提示错误:
    ORA-08002: 序列seq.CURRVAL 尚未在此进程中定义
    而如果我执行了select seq.nextval from dual;后,再执行
      select seq.currval from dual;时,则可以执行并取出当前序列值了不知道这又是怎么回事,
    我查了一下,好像没人提过这个吗