UNIQUE索引如何在多列上工作?

时间:2012-05-23 15:54:36

标签: mysql indexing unique

如果我在email,password列上添加UNIQUE索引,索引是否会检查:

  1. email唯一AND password是唯一的,还是
  2. email,password的组合是唯一的,因为它允许u1@mail.com, 123u2@mail.com, 123
  3. 如果我的想法在这里突然显现,我很难道歉,因为某些原因我今天很难表达出来。提前谢谢!

2 个答案:

答案 0 :(得分:4)

你的第二个答案是正确答案。两个字段的组合必须是唯一的。

对于#1,您需要在每列上使用单独的唯一索引。

答案 1 :(得分:1)

我同意@redFilter这个组合是一个更好的选择。但请记住,UNIQUE与主键不同。如果要在创建表时避免使用,请在UNIQUE中使用空值。在每种数据类型的末尾使用“NOT NULL”。