错误:关键“电子邮件”的重复条目“”

Iai*_*son 3 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' 
Run Code Online (Sandbox Code Playgroud)

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

表格本身看起来像这样: 在此处输入图片说明

Mik*_*son 5

在您的 table 上cl56-goldeng.users,该字段email在创建时指定为不允许超过 1 个相同的值被允许进入其中。这是通过UNIQUE在 MySQL 中创建表时使用的标识符来完成的。您可以在此链接中查看有关 UNIQUE 标识符的更多信息。

你有 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);
Run Code Online (Sandbox Code Playgroud)

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