SQLSTATE [23000]:完整性约束违规:1062密钥“group_key”的重复条目“xxx”

时间:2014-01-17 11:48:22

标签: mysql

在我的网页上没有插入或更新,但已经发现此错误:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '0-Bekoo-2449.10' for key 'group_key'

这是令人惊讶的,因为网页不会修改任何行,Product表没有group_key列或密钥。

我的查询:

SELECT Product._like,
       comment_count,
       title,
       price_lower,
       price,image,
       AffiliateOffers.name,
       p‌​‌​ayout_yuzde,
       payout_nakit,
       payout_type,
       xml_id,
       brand,model,
       currency,url,
       Product.af‌​f_‌​id,
       Product.offer_id,
       pb_share_1,
       pb_share_2,
       pb_share_1_payda,
       pb_share_2_payda,
       A‌​ffil‌​iateOffers.seo_title,
       afo_offer_id,
       r_category,
       seo_description 
FROM Product 
inner Join AffiliateOffers on Product.aff_id = AffiliateOffers.af_id 
      AND Product.offer_id = AffiliateOffers.af_offer_id 
where Product.status = 1 
    and Product.aff_id = 1 
    and Product.offer_id = 1290

和我的表结构:

` CREATE TABLE `_product` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `xml_id` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `aff_id` int(11) NOT NULL,
  `offer_id` int(11) NOT NULL,
  `r_category` int(11) NOT NULL,
  `category_id` int(11) NOT NULL,
  `category_id1` int(11) NOT NULL,
  `category_id2` int(11) NOT NULL,
  `category_id3` int(11) NOT NULL,
  `brand` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,
  `model` varchar(75) COLLATE utf8_unicode_ci DEFAULT NULL,
  `title` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  `description_1` mediumtext COLLATE utf8_unicode_ci,
  `price` decimal(18,2) NOT NULL,
  `price_lower` decimal(18,2) NOT NULL,
  `percentage_lower` int(11) NOT NULL,
  `image` mediumtext COLLATE utf8_unicode_ci NOT NULL,
  `url` text COLLATE utf8_unicode_ci,
  `feature` tinyint(4) NOT NULL,
  `city` varchar(250) COLLATE utf8_unicode_ci DEFAULT NULL,
  `sex` tinyint(4) NOT NULL,
  `stock` tinyint(4) NOT NULL,
  `start_date` int(25) NOT NULL,
  `finish_date` int(25) NOT NULL,
  `update_date` int(25) NOT NULL,
  `status` tinyint(4) NOT NULL DEFAULT '1',
  `hit` int(11) NOT NULL DEFAULT '1',
  `_like` int(11) NOT NULL DEFAULT '0',
  `comment_count` int(11) DEFAULT NULL,
  `like_count` int(11) DEFAULT NULL,
  `lastlike_time` int(25) DEFAULT NULL,
  `visit_count` int(11) DEFAULT NULL,
  `lastvisit_count` int(25) DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `xml_id` (`xml_id`),
  KEY `lastlike_time` (`lastlike_time`),
  KEY `offer_id` (`offer_id`),
  KEY `r_category` (`r_category`),
  KEY `status` (`status`)
) ENGINE=MyISAM AUTO_INCREMENT=3816867 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci`

为什么我收到此错误?

2 个答案:

答案 0 :(得分:2)

除非另有说明,否则group_key是MySQL在聚合内容时使用的内部字段,因此您无法在自己的表或视图中找到它。这里出现重复输入错误意味着您的聚合存在某些问题。

查看您正在使用的任何GROUP BY语句,并确保您的语法正确,尤其是在任何聚合函数和组表达式中。

答案 1 :(得分:0)

在Phpmyadmin中,您必须截断所有日志表。 那应该解决它。

我遇到了同样的问题,我忘了清除访客和在线日志。 这两个表都为用户生成了一个日志/ id(这就是XXX代表的位置) 如果你截断这两个表,它将解决这个问题。