-1

我有一个这样的表:

something
a [INT]
b [INT]
c [INT]

...其中abc是指向三个不同table.id的单独外键。由于我想让所有 regs 都是唯一的,并且在阅读了这个很好的答案之后,我认为我应该以这种方式创建一个新索引:并且(在我的情况下)执行 IGNORE INSERTS。 但正如您所看到的,我会为每一列设置一个 KEY,然后再添加一个包含所有三个的额外 UNIQUE INDEX。这是正常现象吗?这对我来说似乎很奇怪,我从未见过。UNIQUE INDEX(a, b, c)

4

2 回答 2

1

在多个索引中包含一列是完全正常和合理的。但是,如果 (a, b, c) 的组合足以唯一标识一行,那么您似乎需要一个PRIMARY索引而不是一个索引UNIQUE(从技术上讲,差别很小,但从语义上讲,它可能是更好的选择)。

于 2013-01-29T11:15:21.457 回答
-1

如果某事(a,b,c)创建主键将使对唯一索引的需求无效。如果您的主键是Something(a,b)并且您想要一个唯一索引(a,b,c),那么一个额外的唯一索引将是有意义的。但是由于所有三列都是外键,所以主键索引就是你的。

于 2013-01-29T11:18:53.423 回答