我正在使用PHPAdmin在字段上创建唯一索引。它返回错误1062 - 重复键。 。 。然后它给了我违规的数据。问题是数据不重复。每个记录在该字段中都有唯一的条目。认为这是一个异常,我删除了该条目并再次尝试。它在删除的记录之前的最后一行给了我同样的错误。
表模式:
CREATE TABLE prospects (
client_id int(11) NOT NULL AUTO_INCREMENT,
company varchar(64) DEFAULT NULL,
created_on timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
... some other fields like first_name...
PRIMARY KEY (client_id),
KEY first_name (first_name,last_name)
) ENGINE=MyISAM AUTO_INCREMENT=1958 DEFAULT CHARSET=latin1
更改表语句失败:
ALTER TABLE acceler6_accelrefer.prospects ADD UNIQUE company_ui (company);
任何帮助或见解将不胜感激。
尽管你不想再从评论中听到它,但你有一个重复的company
名称。请注意,这并不意味着整个记录都是重复的,但是当您在公司上添加唯一记录时,每条记录都必须具有唯一的company
。我猜你有时候每家公司都有不止一个潜在客户入场券。
要验证,请尝试以下操作:
SELECT count(company), count(distinct company) FROM prospects;
如果这些数字相同,那么好吧,你赢了,你在同一家公司没有多于一条记录,但我确信它们会有所不同。
要准确找出哪些是重复,您可以这样做:
SELECT company, count(company) AS counter
FROM prospects
GROUP BY company
HAVING counter > 1;
如果您只想快速查找公司的client_id
,请删除UNIQUE
并使用常规密钥。
ALTER TABLE acceler6_accelrefer.prospects ADD KEY company_ui (company);