我发现了一些遗留代码,它为主键字段设置了两个几乎相同的约束(UNIQUE
和PRIMARY 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/