我可以在2列上有2个唯一键但不能组合吗?

时间:2012-12-13 01:59:55

标签: mysql sql multiple-columns unique-key

我有一张桌子

table userinfo (
     user,
     email,
     address,
     primary key(user)
);

在此表中,'user'字段与插入时的'email'相同。但是用户可以在后面更改他们的“电子邮件”。 所以我希望电子邮件也是唯一的,如果电子邮件已经存在于表中,则插入查询失败。

可能吗?

提前致谢,这只是一个例子。

2 个答案:

答案 0 :(得分:4)

是的,添加UNIQUE约束

table userinfo (
     user,
     email,
     address,
     primary key(user),
     CONSTRAINT tb_uq UNIQUE (email)
);

该表格现在具有唯一的USER和唯一的Email

答案 1 :(得分:2)

您可以在表格上创建多个索引。因此,如果您只在所需的列上创建2个唯一索引,它将按您所需的方式工作。如果在多个列上创建1个索引,则这些列的组合必须是唯一的。