不能 序列的值会因为 rollback ,数据库的 shutdown abort ,共享池的刷新 而造成不连续

解决方案 »

  1.   

    序列的值不能回滚,并且,序列的连续性不一定被保证
    在建序列的时候,+一句 no cache能够加强序列的连续性
    但是,有时候还是不能连续性,建议要是确实需要连续的计数
    还是自己写一个函数吧
      

  2.   

    如果你想要一个连续的序列值可以考虑用一个表来替代 sequence
      

  3.   

    alter sequence seq1 nocache
      

  4.   

    抛弃序列,
    select max(id) from...
    然后引用此值
      

  5.   

    select max(id) from...
    有没有考虑多用户?所以说:
    保持绝对连续没有可能!
    我非常赞同这句话。
      

  6.   

    始终保持连续不太可能,如果从中删除一条记录呢,难道要把所有的记录再调整一遍吗?
    所以说要求始终连续很难做。
    如果想那样做,还不如用rownum,不过没什么必要:)
      

  7.   

    在建sequence时设置cache 10可以让该序列每次取下10个序列的值供用户使用,在系统shutdown abort时刷新共享池,系统将
      

  8.   

    没输完就发出了    接上系统将丢弃没有用完的序列值,导致序列不连续,如果将cache设为0,系统将不会将序列的值放到缓冲区中,影响速度,如果设置初始文件中cache的值,可以让序列连续,(此方法本人未验证)