2010-06-23 67 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