文档首页/ 云数据库 GaussDB/ 开发指南(集中式_V2.0-8.x)/ FAQ/ 唯一约束和唯一索引有什么区别?
更新时间:2024-11-12 GMT+08:00
分享

唯一约束和唯一索引有什么区别?

答:唯一约束和唯一索引的主要区别如下:

  • 唯一约束和唯一索引概念不同。

    唯一约束确保一列或者一组列中包含的数据对于表中所有的行都是唯一的。 如果没有声明DISTRIBUTE BY REPLICATION,则唯一约束的列集合中必须包含分布列。唯一索引用于限制索引字段值的唯一性,或者是多个字段组合值的唯一性。CREATE UNIQUE INDEX创建唯一索引。

  • 唯一约束和唯一索引功能不同。

    约束主要是为了保证数据的完整性,索引主要是为了辅助查询。

  • 唯一约束和唯一索引使用方法不同。
    • 创建唯一约束,会自动创建一个同名的唯一索引,该索引不能单独删除,删除约束会自动删除索引。唯一约束是通过唯一索引来实现数据的唯一。
    • 创建一个唯一索引,这个索引是独立的,并且可以单独删除。
    • 如果一个列上想有约束和索引,且两者可以单独的删除。可以先建唯一索引,再建同名的唯一约束。
    • 如果表的一个字段,要作为另外一个表的外键,这个字段必须有唯一约束(或是主键),如果只是有唯一索引,就会报错。

相关文档