phpmyAdmin中的重复键错误

问题描述 投票:0回答:1

我正在使用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);

任何帮助或见解将不胜感激。

mysql unique-constraint
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.