将行从旧表复制到新表时的重复条目消息

时间:2013-07-01 04:42:49

标签: mysql

我每个月自动打开一个表,并且我传递了上个月某些表的行,我执行查询时向我发送了一条消息“Duplicate Entry”我试图理解为什么会发生这种情况如果我重新创建表是全新的,我注意到表中的所有新行都获得了最后一个ID的增量ID,写在我的表中但是nextindex索引加上一个索引是前一个表的事实。 我用表格附上我正在构建的代码,并且对数据结构进行查询,我很乐意在我错的地方获得建议。

我将总结问题:
1)打开新表,但ID是上一个表的ID的增量,如果在创建新表时写入AUTO-INCREMENT 1,则没有意义。

2)针对DATABASE的查询给我一个错误

3)与nextautoindex有关联,我需要重置他吗?


密码:
Mysql查询

insert into gyoman072013 (pnumber,id,MokedCcode,WCODE,ndate,TIMECALL,EventHandling,Endtimecare,User,TIMEARRIAVAL,FREEDATA,sendtime) select gyoman062013.pnumber,gyoman062013.id,gyoman062013.MokedCcode,gyoman062013.WCODE,gyoman062013.ndate,gyoman062013.TIMECALL,gyoman062013.EventHandling,gyoman062013.Endtimecare,gyoman062013.User,gyoman062013.TIMEARRIAVAL,gyoman062013.FREEDATA,gyoman062013.sendtime from gyoman062013 RIGHT JOIN eventcodes ON gyoman062013.WCODE=eventcodes.WCODE AND eventcodes.PRIORITY='1' where EventHandling!='2'

注意:我认为我的查询没有问题(可能),但问题是由我每个月重新创建的表格结构造成的。

表格结构查询:

"CREATE TABLE IF NOT EXISTS gyoman".$datestamp." (
 `pnumber` varchar(6) NOT NULL,
 `id` int(255) NOT NULL AUTO_INCREMENT,
 `MokedCcode` varchar(5) NOT NULL,
 `GroupB` varchar(3) NOT NULL,
 `WCODE` varchar(7) NOT NULL,
  `ndate` date NOT NULL,
 `TIMECALL` varchar(8) NOT NULL,
  `EventHandling` int(1) NOT NULL,
 `Endtimecare` varchar(8) NOT NULL,
  `User` varchar(255) NOT NULL,
  `TIMEARRIAVAL` varchar(8) NOT NULL,
  `FREEDATA` varchar(255) NOT NULL,
   `sendtime` time NOT NULL,
    PRIMARY KEY (`id`),
   KEY `MokedCcode` (`MokedCcode`),
  KEY `WCODE` (`WCODE`),
  KEY `GroupB` (`GroupB`),
  KEY `ndate` (`ndate`)
 ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1"

注意:datestamp是临近月份,你可以看到@ my query 谢谢!

1 个答案:

答案 0 :(得分:0)

尝试在创建表格后重置AUTO INCREMENT,如:

ALTER TABLE gyoman072013 AUTO_INCREMENT = 1;