2010-06-23 45 views
0

我有一張用於存儲一些臨時簿記內容的表。它需要每行都有一個唯一的ID,所以我使用了一個autoincremented列。但是,經過一段時間,該列達到最大值,然後我無法在表格中輸入新行。 該表格相當小,每次只有〜100行,因爲我一直插入和刪除行。我想以某種方式使自動增量循環,例如在它達到它的最大值後它回到零。沒有機會違反列的唯一性,因爲表中只有最後100個插入。 我該怎麼做?或者這不是正確的解決方案,並有一些更好的方法來獲得獨特的令牌的數據庫中的行?在mysql中創建一個循環自動增量列

+0

您用於ID列的數字類型是什麼?不含稅的INT會給你最大值4,294,967,295。無符號的BIGINT會給你一個相當大的18,446,744,073,709,551,615。你多長時間插入和刪除記錄? – Mike 2010-06-23 09:07:07

+0

@Mike - 目前它是INT。你說得對,如果我將它改爲BIGINT,我可以放心,這個問題不會在幾年後出現。但推遲這個問題只是不覺得適合的解決方案...... y2k錯誤不是從類似的「解決方案」開始的嗎? :) – olamundo 2010-06-23 09:13:38

+0

@noam:我明白了你的觀點,並希望看到對此的迴應。正如唐提到的那樣,128位的UUID應該會讓你的BIGINT值增加一倍,但這只是推遲了這個問題。是否在任何關係中使用了ID列?否則,我認爲它可能不需要ID列。 – Mike 2010-06-23 09:21:48

回答

2

還有UUID()可用。

+0

謝謝!雖然不是一個循環自動增量,但它正是我所需要的 – olamundo 2010-06-23 09:19:41