2013-07-01 48 views
0

我每個月自動打開一個表,並傳遞上個月某個表的行,我執行查詢時向我發送了一條消息「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一個月,你可以看到我的@查詢。
謝謝!

+0

如果我得到這個顯然我不知道。你在說什麼是每次你創建一個新表時,它的第一個主鍵的值將會繼續與它被複制的表的值?像OldTable的最後一個值是100,所以當你創建一個新表時,自動增量值會變成101?那是你在說什麼? – Edper

+0

是的,這是我提到的問題之一。 –

+0

您是否嘗試過使用ALTER TABLE將自動增量顯式重置爲1,如ALTER TABLE tablename AUTO_INCREMENT = 1;儘管我看到你正在將自動增量設置爲1。但是在使用ALTER TABLE創建表之後嘗試。 – Edper

回答

0

嘗試重置AUTO INCREMENT就像創建表之後:

ALTER TABLE gyoman072013 AUTO_INCREMENT = 1; 
+0

我做到了,但沒有變化。 –

+0

好的,另外你的答案我意識到我的查詢有重複的行,我在SELECT DISTINCT之後添加了它的原因,結果是沒有重複的id,所以它解決了這個問題。謝謝! –

+0

很高興它爲您的@OfirAttia工作。所以,畢竟它是一個「重複條目」。快樂編碼和上帝保佑。 – Edper