想在 Oracole 中实现类似 SqlServer 中 IDENTITY(1,1) 自增加约束的功能,听说只能通过创建序列(SEQUENCE)实现。一个序列只能用在一个表中不能用在多个表中吧? 可以用在一个表中的多个字段吧?

解决方案 »

  1.   

    可以在多个表以及同一表的多个字段使用。
    有关sequence,可以参考:SQL基础--> 序列(SEQUENCE)、同义词(SYNONYM) 
      

  2.   

    IDENTITY(1,1) 自增加约束的功能,oracle里的实现比较灵活啊,可以参考我的BLOG:
    http://blog.csdn.net/java3344520/article/details/4907591上次在群里听到有人说MS SQL SERVER 2012也有序列了,看来MS SQL觉醒了,序列好用和灵活怎么用都可以,只要你自己觉得不乱,就是个按顺序取值而已
      

  3.   

    oracle中的sequence和table一样属于独立的object,隶属于schema,
    它可以用在多个表或同一表的多个字段,但这种情况下,对于同一个字段来说肯定有裂缝。
      

  4.   


    定义一个触发器把指定表用一个序列产生主键,如果其他表也用这个序列产生主键值,还要再写个触发器么?应该可以把这个触发器定义为多个表使用吧,SQL语句怎么写?
      

  5.   

    个触发器定义为多个表使用吧,SQL语句怎么写? 不行,一个触发器就只能一个表使用,触发器是依附于表的,必须为每个表建立触发器为什么要公用一个序列?什么特殊需求?
      

  6.   


    就是因为这个么,我汗。那你还是再触发器里用MAX来做吧,序列都不要了