有没有理由在同一个字段上同时使用主键和唯一键?

Aca*_*mbo 9 oracle

我正在分析Oracle数据库设计,我很困惑地看到相同字段上的唯一键和主键.这些唯一主键对始终在所有表上创建.我认为没有理由这样做.

如果我还有主键,是否有充分的理由在同一个字段上创建一个额外的唯一键?

Dav*_*ras 1

不,没有理由让它也如此独特;当您将列设置为 PK 时,您可以确定:

  1. INSERT 或 UPDATE 时该列不接受 NULL;
  2. 整个表中该列的值始终是唯一的;

所以只要PK就够了。由于 PK 列有一个 UNIQUE 索引,根据定义,无需仅在该列上添加任何其他索引,因为只要该列受到影响,查询就会使用 PK 索引。