我每個月自動打開一個表,並傳遞上個月某個表的行,我執行查詢時向我發送了一條消息「Duplicate Entry」要理解爲什麼會發生這種情況,如果我重新創建的表是全新的,我注意到表中的所有新行都獲得最後一個增量ID到ID,寫入我的表中,但是,nextindex索引加上一個索引是之前的事實表。 我附上我正在建立的代碼表,並且對數據結構進行查詢,我會很樂意在我錯誤的地方得到建議。
我將總結問題:
1)打開新表,但該ID是增量到上表中的ID,只是沒有任何意義,如果我創建一個新表時寫自動遞增1 。將行從舊錶複製到新表時複製條目消息
2)對數據庫查詢,給我一個錯誤
3)存在於nextautoindex的連接,我需要重置他嗎?代碼
peice的:
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"
注:日期戳是cureent一個月,你可以看到我的@查詢。
謝謝!
如果我得到這個顯然我不知道。你在說什麼是每次你創建一個新表時,它的第一個主鍵的值將會繼續與它被複制的表的值?像OldTable的最後一個值是100,所以當你創建一個新表時,自動增量值會變成101?那是你在說什麼? – Edper
是的,這是我提到的問題之一。 –
您是否嘗試過使用ALTER TABLE將自動增量顯式重置爲1,如ALTER TABLE tablename AUTO_INCREMENT = 1;儘管我看到你正在將自動增量設置爲1。但是在使用ALTER TABLE創建表之後嘗試。 – Edper