我为了保证数据表中的某一列值唯一,发现可以建立唯一约束也可以建立唯一索引来保证,那这两者有什么区别呢?
建立唯一约束的时候也会建立一个同名的唯一索引,是不是可以理解为唯一约束比唯一索引更加强烈一些?

解决方案 »

  1.   

    目的不一样?但是我建立唯一约束的时候,oracle会自动给我建立一个唯一索引啊?
    并且我建立唯一索引也能保证数据唯一性啊?
      

  2.   

    唯一性约束是通过唯一性索引来实现的。如果不显式创建唯一性索引,Oracle则会隐式的创建唯一性索引。
      

  3.   

    用建立唯一索引的方式来实现唯一约束,这就是两者的联系。
    区别很明显,一个是约束一个是索引,不同的对象。
    当你disable这个约束的时候,同名的唯一索引会被删除。