错误:为密钥'电子邮件'重复输入''

时间:2015-11-12 14:37:48

标签: mysql phpmyadmin

我之前看到过运行php脚本的人出现这个错误,但这是发生在phpmyadmin吗?

Error
SQL query:

UPDATE  `cl56-goldeng`.`users` SET `email` =  '' WHERE  `users`.`id` =118

MySQL said: Documentation

#1062 - Duplicate entry '' for key 'email' 

如果我给该字段另一个值,它可以正常工作,但如果我清除该字段并按回车键,则会出现上述错误。

表格本身如下: enter image description here

3 个答案:

答案 0 :(得分:3)

在您的表cl56-goldeng.users上,在创建时指定了字段email,以允许不允许超过1个相同的值进入它。这是使用MySQL中表创建的UNIQUE标识符完成的。 You can see more on the UNIQUE identifier at this link.

您可以选择2个选项。

  • 首先是删除email字段上的唯一约束。这完全取决于您的代码中的逻辑,但看到电子邮件应几乎始终是唯一的,不建议这样做。

您可以通过运行命令删除唯一键: alter table [table-name] drop index [unique-key-index-name];

  • 其次,将使用NULL而不是空字符串。我的假设是,当用户电子邮件不存在时,您将设置一个空字符串。在这种情况下,最好使用NULL,然后在从数据库中检索数据时检查它。

您可以使用NULL语句中的NULL标识符插入MySQL值,如下所示:

INSERT INTO users (firstName,lastName,email)
  VALUES ('Bob','Ross',NULL);

然后检查您正在访问此数据的任何语言的NULL值。

答案 1 :(得分:2)

您的email字段有唯一约束。重新考虑您的逻辑或drop the unique constraint

答案 2 :(得分:1)

多数民众赞成是因为您可能已将该电子邮件声明为唯一密钥,并且一旦您输入一行空电子邮件,它就不会发送另一封空邮件