在数据库 AutoIncrease 列中。如果值达到最大值怎么办
Posted
技术标签:
【中文标题】在数据库 AutoIncrease 列中。如果值达到最大值怎么办【英文标题】:In database AutoIncrease column. What if value reached maximum value 【发布时间】:2018-12-13 09:37:12 【问题描述】:我正在开发一个 Access 数据库应用程序。这个应用程序每分钟都有大量的更改(添加的行)。保存在具有“ID”自动增加列(从 0 开始)的表中的所有更改。在某些时候,“ID”值将达到最大值。允许的值(我认为是 Integer.MaxValue 或其他)。在此之后如何添加新行?
注意:添加行时,我还会删除以前的行。因此,表格总行数不会超过 100 行,但“ID”列不会重复其值或重新从 0 开始计数。
【问题讨论】:
即使使用常规的 32 位自动编号列,它也会持续 2^31 / (60*24*365) = 4085 年,每分钟一条记录。 :) 【参考方案1】:您必须执行identity reseed。这个link 将解释如何在访问数据库中做到这一点。
【讨论】:
非常感谢,有帮助。【参考方案2】:请改用Large Number (bigint) 和Stop Worrying About Exhausting Bigints。
【讨论】:
这仅对 Access 2016 (Office 365) 有效。这在链接页面上很清楚,但最好将此信息包含在 SO 答案中。该页面也没有提到自动编号字段。我没有 Access 2016,您能否验证此解决方案是否适用于自动编号?以上是关于在数据库 AutoIncrease 列中。如果值达到最大值怎么办的主要内容,如果未能解决你的问题,请参考以下文章
SQL 从 2 列中选择数据,如果它不为 NULL,则插入到视图中
如果列中的前一个单元格为空,DataReader 不会在 Excel 单元格中看到数据