表中的主键想用 Sequences  来做,大家给点意见

解决方案 »

  1.   

    在使用上还是没有sqlserver和informix的identity列方便,尤其是在使用到涉及到聚合函数的时候,例如:
    表t1有三列a,b,c,a在这里当作序列列
    如果要对这个表插入类似数据的时候就只能写成
    insert into t1(a,b,c) select seq_id.nextval,b.* from (select b,sum(c) c from t2 group by b)
    如果在sqlserver等其它几种数据库中都可以将a直接设置成序列列,然后
    insert into t1(b,c) select b,sum(c) from t2 group by b就可以了
      

  2.   

    to zmgowin:《
    如果要对这个表插入类似数据的时候就只能写成
    insert into t1(a,b,c) select seq_id.nextval,b.* from (select b,sum(c) c from t2 group by b)
    》 在表上加一个触发器就和sqlserver一样了(偶觉得sqlserver的identity比较烂)
      

  3.   

    跟sql server的identity相比
    没有跟字段直接进行关联
    只能通过序列的名字来区分其用途
    不过使用起来还是比较方便的。
      

  4.   

    暂时还真没发现sequence的明显缺点.
      

  5.   

    缺点有两个:
    1. 没有sql server的identity方便
    2. 不好归零
      

  6.   

    最大的缺点是:
    正在使用数据库时突然down机,序列号可能就不会连续。
      

  7.   

    如果希望连续的话,可以把建序列的cache设置为0或用nocache.这样影响一定的性能. 每次用到sequence都要及时取值.
      

  8.   

    哈哈,适用场合问题,很多人把它滥用了,我觉得它只适合一定情况下,如该列没什么大的意义,确保记录不重复可以用,但是要用它对应一些要求规则编码而且要求唯一、连续美观的情况下,他就很滥了。希望不要迷信sequences,他毕竟不受自己完全控制。
      

  9.   

    我很喜欢sequence,就是因为它可以自己控制,呵呵
      

  10.   

    我通常用 '日期||sequence' ,存放在Vchar2列里面,用来做索引或主键,还是很好用的
      

  11.   

    comcn(大XX) 的方法不错,学习
      

  12.   

    Vchar2列 索引性能没有char的好哦
      

  13.   

    产生的ID号可能不能连续,看你那个字段的要求了,我们曾经采用自己建表管理自动递增的ID,以代替序列,但比较麻烦!