我可以在2列上有2个唯一键,但不能组合吗?
table userinfo (
user,
email,
address,
primary key(user)
);
在这个表中“用户”字段是一样的,在插入时“电子邮件”。但用户可以在后面更改他们的'电子邮件'。 所以我想让电子邮件也是唯一的,如果电子邮件已经存在于表格中,插入查询失败。
是否有可能?
在此先感谢,这只是一个例子。
是,添加一个UNIQUE
约束
table userinfo (
user,
email,
address,
primary key(user),
CONSTRAINT tb_uq UNIQUE (email)
);
表将拥有独特的USER
和独特Email
。
您的意思是CONSTRAINT tb_uq UNIQUE(电子邮件)。对? –
@AjitCatalányep,已更新。 –
谢谢你的工作 –
您可以在表格上创建多个索引。所以如果你在你想要的列上创建2个唯一的索引,它将会以你想要的方式工作。如果您在多个列上创建1个索引,则这些列的组合必须是唯一的。
如果您要求电子邮件是唯一的,那么为什么不把它作为主键? (我不是故意重燃关于自然与代理键的宗教辩论,但是如果你真的想在数据库层中强加唯一性约束,那么它可能是一个明智的解决方案。 – eggyal