MySQL INSERT导致重复键,但不存在重复

时间:2015-07-24 17:05:50

标签: mysql

我读过许多人声称有这个问题的条目,他们已经解决了他们的问题,但他们的答案都没有解决我的问题。我使用phpMyAdmin更新用户的电子邮件地址。 “user_email”字段标记为UNIQUE。每当我将电子邮件地址更新为他的实际电子邮件时,我都会:

Duplicate entry 'user@example.com' for key 'user_email'

我对表进行了分析,优化和修复,没有出现任何错误 - 一切正常。

我已经运行了几个SQL语句来查找任何重复项,但发现它们不存在。

我甚至导出了表并再次导入了记录。我添加索引并尝试更新...重复的条目消息。这是表结构:

CREATE TABLE IF NOT EXISTS `users` (
  `id` bigint(20) NOT NULL,
  `md5_id` varchar(200) NOT NULL DEFAULT '',
  `full_name` tinytext,
  `user_name` varchar(200) DEFAULT NULL,
  `user_email` varchar(220) DEFAULT NULL,
  `user_level` tinyint(4) NOT NULL DEFAULT '1',
  `pwd` varchar(220) NOT NULL DEFAULT '',
  `address` text COLLATE latin1_general_ci,
  `country` varchar(200) DEFAULT NULL,
  `tel` varchar(200) NOT NULL DEFAULT '',
  `fax` varchar(200) DEFAULT NULL,
  `website` text,
  `date` date NOT NULL DEFAULT '0000-00-00',
  `users_ip` varchar(200) NOT NULL DEFAULT '',
  `approved` int(1) NOT NULL DEFAULT '0',
  `activation_code` int(10) NOT NULL DEFAULT '0',
  `banned` int(1) NOT NULL DEFAULT '0',
  `ckey` varchar(220) NOT NULL DEFAULT '',
  `ctime` varchar(220) NOT NULL DEFAULT '',
  `location` tinyint(4) NOT NULL DEFAULT '9'
) ENGINE=MyISAM AUTO_INCREMENT=210 DEFAULT CHARSET=latin1;

ALTER TABLE `users` ADD PRIMARY KEY (`id`);

MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT,AUTO_INCREMENT=210;

即使现在我已从'user_email'字段中 REMOVED UNIQUE索引,但错误仍然存​​在。我真的不明白(可能残留的东西......?我只是在猜测)。

想象一下我手上的头发。有人可以帮忙吗?

更新

以下是SHOW CREATE TABLE users的输出 enter image description here

以下是SHOW INDEX FROM users的输出 enter image description here

编辑时出现错误消息: enter image description here

不使用数据库名称的错误消息: enter image description here

输出:SHOW CREATE TABLE proctor.users enter image description here

0 个答案:

没有答案