CREATE TABLE IF NOT EXISTS `TEST2` (
  `ID` bigint(20) NOT NULL auto_increment,
  `STAT_SRC` varchar(100) collate utf8_unicode_ci NOT NULL,
  `STAT_DATE` datetime NOT NULL,
  `PART_NO` varchar(100) collate utf8_unicode_ci NOT NULL,
  `CUST_ID` varchar(100) collate utf8_unicode_ci NOT NULL,
  `A` int(11) NOT NULL default '1',
  PRIMARY KEY  (`ID`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=241075 ;
執行SQL
SELECT STAT_SRC, PART_NO, count( * ) 
FROM SPP_STATISTIC
WHERE STAT_DATE >= '2008-09-01'
AND STAT_DATE <= '2008-09-30 23:59:59'
GROUP BY 1 , 2
MySQL 返回錯誤: 
#1062 - Duplicate entry 'SPP-Online-NE5532AD' for key 1 

解决方案 »

  1.   

    一般是因为数据表文件损害导致,可用MySQL的修复工具myisamchk 工具修复试试
      

  2.   

    這個table是我新建的表,然後把資料復制進來的,就是有24萬筆資料.
      

  3.   

    数据库的主键去除auto_increment试试
      

  4.   

    你给的表INFO中的名字是test2
    实际查询中的名字是SPP_STATISTIC
    怎么搞?
      

  5.   

    SPP_STATISTIC 是正式table ,复制成另一个table test2,两个表的结构,数据是一样的,
    但是执行同一条sql时都会出现这个错误。
     SELECT STAT_SRC, PART_NO, count( * ) 
    FROM test2
    WHERE STAT_DATE >= '2008-09-01' 
    AND STAT_DATE <= '2008-09-30 23:59:59' 
    GROUP BY 1 , 2