ITPub博客

首页 > 数据库 > 国内数据库 > GBase 8s数据库主键约束、唯一约束与唯一索引(下)

GBase 8s数据库主键约束、唯一约束与唯一索引(下)

原创 国内数据库 作者:GBASE南大通用 时间:2026-08-10 16:13:54 0 删除 编辑

文章配图-1

本文继续梳理南大通用GBase 8s数据库(gbase database)保证数据的唯一性三种实现手段:主键约束(PRIMARY KEY)、唯一约束(UNIQUE) 和 唯一索引(UNIQUE INDEX)的主要区别。

四、三者之间的区别

1. 唯一约束 vs 主键约束

唯一约束允许列上存在 NULL 值;主键约束的限制更为严格,既不允许重复,也不允许空值。

2. 唯一约束 vs 唯一索引

两者的目的不同:

唯一约束:用于检查数据的正确性;唯一索引:用于实现数据查询的优化。

在实现机制上:

  • 创建唯一约束时,GBase 8s 会在创建一个 constraint 的同时,创建一个该约束对应的唯一索引;
  • 创建唯一索引只会创建索引本身,不会创建 constraint。

也就是说,唯一约束实际上是通过创建唯一索引来实现的。

3. 核心差异速览

文章配图-1

五、小结

综合上述,可以得出以下结论:

如果字段加上 NOT NULL 约束,再加上唯一约束或唯一索引,功能上将等同于主键约束;

  1. 唯一约束与唯一索引的唯一性检查行为一致,唯一约束仅仅是比唯一索引多了一个 constraint 定义;
  2. 主键约束限制最严格(唯一且非空),一张表只能有一个;唯一约束和唯一索引允许 NULL(且允许多个 NULL),一张表可以创建多个。

实践建议:数据的唯一性规则属于业务逻辑的一部分,应通过主键约束和唯一约束来声明;唯一索引则更多地作为查询优化手段使用。约束保证数据正确,索引服务查询性能,按需选择即可。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69979120/viewspace-3179369/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
GBASE南大通用,致力于成为用户最信赖的数据库产品供应商!

注册时间:2020-07-16

  • 博文量
    1316
  • 访问量
    1295754