使用带有AUTO_INCREMENT的空ID

时间:2014-07-06 21:42:07

标签: mysql sql

我对 PK 使用 AUTO_INCREMENT ,我想在从表中删除记录时重复使用ID。

例如,如果我使用id=5删除记录,我希望下一次插入新记录以使用空id=5

那么如何用AUTO_INCREMENT填充未使用的ID?

1 个答案:

答案 0 :(得分:2)

重用auto_increments的想法是一个可怕的想法。最大的原因是并发性等。您可以(并且将会)使整个数据库和数据模型不稳定。

为ID使用正确的数据类型可以解决数字用完的问题,在这种情况下,正确的数据类型为bigint

bigint可让您存储最大尺寸为18446744073709551615。

如果您的插入是每秒1000,这意味着在1天内您将执行1000 * 3600 * 24条记录,或每天86 400 000条记录。在一年的过程中,这将是31,536,000,000条记录。使用简单的数学,如果你能够在那段时间内每秒生成1000个插入,你可以计算出你在大约58000年内超过bigint,这应该说服你使用正确的数据类型处理记录而不是试图明白这只会导致失败。