我正在使用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);
任何帮助或见解都将不胜感激。
答案 0 :(得分:0)
尽管您不希望再次从评论中听到它,但您有一个重复的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);