我每个月自动打开一个表,然后传递上个月的某个表的行,我执行查询时向我抛出了一条消息“重复条目”我试图理解如果我重新创建的表是全新的,为什么会发生这种情况,我注意到表中的所有新行最后都将增量 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 是当前月份,可以看@我的查询。
谢谢!。