我发现了一些遗留代码,它为主键字段设置了两个几乎相同的约束(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将完成这项工作。
当然,我读到了这两个约束之间的区别,但是
为同一个字段设置这两个约束的意义是什么?
发布于 2016-11-23 14:02:27
这样做是没有意义的。主键在本质上总是独一无二的。我建议不要建立这两个索引,因为索引需要花费(主要是磁盘空间)。只要创建PK,你就会很棒!
发布于 2016-11-23 13:59:21
设置与PK完全相同的约束是没有意义的。
主键已确保此列是唯一的和索引的。
发布于 2016-11-23 14:06:02
我觉得这是多余的..。
是的,它确实是多余的;因为在列上有主键约束将确保列只有唯一的值。在同一列上定义额外的UNIQUE约束是没有意义的。
https://stackoverflow.com/questions/40766413
复制相似问题