0

我每个月自动打开一个表,然后传递上个月的某个表的行,我执行查询时向我抛出了一条消息“重复条目”我试图理解如果我重新创建的表是全新的,为什么会发生这种情况,我注意到表中的所有新行最后都将增量 ID 变为 ID,但写在我的表中的是 nextindex 索引加上一个索引是前一个表的事实。我将我正在构建的代码与表格以及针对数据结构的查询一起附上,我很想在我错的地方得到建议。

我将问题总结一下:
1)打开新表,但是id是对上一张表的id递增,只是我在创建新表的时候写AUTO-INCREMENT 1没有意义。

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

3)有连接到nextautoindex,我需要重置他吗?


代码片段:
Mysql Query

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 是当前月份,可以看@我的查询。
谢谢!。

4

1 回答 1

0

创建表后尝试重置,AUTO INCREMENT如下所示:

ALTER TABLE gyoman072013 AUTO_INCREMENT = 1;
于 2013-07-01T05:02:41.537 回答