我正在尝试设置一个mysql表。希望如下:
id (integer, auto increment, primary)
username (varchar 32, unique)
email (varchar 32, unique)
我不想在表格中允许重复的用户名或电子邮件地址。例如,在启动时,我将测试表中是否已存在提供的用户名或电子邮件 - 如果已存在,我将取消注册。
如果我将用户名和电子邮件列标记为“唯一”,这是否也意味着它们已被编入索引?我希望将它们编入索引,以便我可以尽可能高效地执行已存在的检查,
由于
答案 0 :(得分:1)
是的,他们将被编入索引。这也是数据库如何尽可能有效地完成已存在的检查。
答案 1 :(得分:0)
是的,它会隐式创建一个索引。
http://dev.mysql.com/doc/refman/5.1/en/create-table.html
UNIQUE索引创建一个约束,使索引中的所有值必须是不同的。如果您尝试添加具有与现有行匹配的键值的新行,则会发生错误。对于所有引擎,UNIQUE索引允许可以包含NULL的列的多个NULL值。