MySQL。同一字段的 UNIQUE 和 PRIMARY KEY 约束

标签 mysql constraints primary-key unique-constraint

我发现了一些遗留代码,它为主键字段设置了两个几乎相同的约束(UNIQUEPRIMARY KEY)。

这是代码示例:

CREATE TABLE foofoo (
  id NUMERIC(9) NOT NULL ,
  bar VARCHAR(40) NOT NULL,

  CONSTRAINT PK_foofoo PRIMARY KEY (id),
  CONSTRAINT UNIQUE_foofoo UNIQUE(id)
)

我认为设置这两个是多余的,PRIMARY KEY 就可以完成这项工作。

当然,我看了这两个约束有什么区别,但是

为同一字段设置这两个约束有什么意义

最佳答案

这样做没有意义。主键本质上始终是唯一的。我建议不要同时创建这两个索引,因为索引会带来成本(主要是磁盘空间)。只需创建 PK 即可!

关于MySQL。同一字段的 UNIQUE 和 PRIMARY KEY 约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766413/

相关文章:

php - MySQL 中的序列化类型

PHP sleep 强制慢查询

swift - 添加的 subview 位置稍微偏离 - 我怎样才能把它放回原位?

mysql 一个表中的多个外键指向同一个主键

mysql - 如何获得非重复项?

mysql - 像 MySQL 中的大小写敏感一样

python - PuLP:每组仅使用一项

postgresql - 两列 : Integer and Boolean 上的 Postgres 唯一约束

iphone - 核心数据 : I want the pk in my fetched objects

mysql - 如何给主键添加前缀?