gpt4 book ai didi

sql-server - 列中的循环 IDENTITY 编号

转载 作者:行者123 更新时间:2023-12-01 12:36:16 29 4
gpt4 key购买 nike

是否可以强制 IDENTITY 列在达到定义数据类型的最大值时重新计算其种子属性,以填补 ID 中的空白。

这样说吧,我有一个数据类型为 TINYINT 的列,它最多可以容纳 255 个值。当列中的数据填充到可能的最大 ID 时,我从中删除一行中间,假设 ID = 100

问题是,我可以强制 IDENTITY 填写最后缺少的 ID 吗?

最佳答案

可以重新为IDENTITY设置种子(设置新种子),但它不能能够神奇地找到缺失值。 ...

重新播种的 IDENTITY 列将继续从新种子开始分发新值 - 这意味着,在某个时候,迟早会发生与现有值的冲突

因此,总而言之,重新播种 IDENTITY 确实不是一个好主意....只需选择一个足够大的数据类型来满足您的需求即可。

对于 INT 类型,从 1 开始,您将获得 超过 20 亿 可能的行 - 这对于绝大多数情况来说应该绰绰有余。使用 BIGINT,您将得到大约 922 千万亿(922 有 15 个零 - 9'220'0000 亿)- 对您来说足够了吗??

如果您使用从 1 开始的 INT IDENTITY,并且您每秒插入一行,则需要 66.5 才能达到20亿极限....

如果您使用从 1 开始的 BIGINT IDENTITY,并且每秒插入一千行,您需要令人难以置信的2.92 亿年 在你达到 922 千万亿的限制之前....

MSDN Books Online 中阅读更多相关信息(包含所有选项) .

关于sql-server - 列中的循环 IDENTITY 编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29514645/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com