三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

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

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

在数据库设计中,保证数据的唯一性是一项基础需求。南大通用GBase 8s数据库(gbase database)提供了三种实现手段:主键约束(PRIMARY KEY)、唯一约束(UNIQUE) 和 唯一索引(UNIQUE INDEX)。

三者在功能上高度相似,容易混淆,但在约束规则、实现机制和使用场景上存在明确差异。本文逐一梳理三者的定义与区别,并通过实际操作进行验证。


一、主键约束(PRIMARY KEY)

主键用于唯一标识表中的每一条记录,其主要特性包括:

  • 可以定义一列或多列为主键,但一个表上只能有一个主键;
  • 主键列上没有任何两行具有相同值,且不允许为空(NULL);
  • 不建议更新主键;
  • 主键可作为外键被引用,唯一索引不可。

二、唯一约束(UNIQUE)

唯一约束用于限制主键以外列上数据的唯一性,可作为访问某行的可选手段:

  • 一个表上可以放置多个唯一约束;
  • 只要保证唯一,该列的值就可以更新;
  • 表中任意两行在指定列上不允许有相同值,但允许存在空值(NULL)。

三、唯一索引(UNIQUE INDEX)

唯一索引从索引层面保证键值唯一:

  • 任何生成重复键值的插入或更新尝试都会失败;
  • 只要保证唯一,该列的值就可以更新;
  • 与唯一约束相同,允许存在空值(NULL)。
← 返回列表