sql-server - Microsoft SQL Server 中的 Identity(1,1) - 是否有实际理由使用 1,1 以外的值作为种子/增量?
问题描述
我正在教授 Microsoft SQL Server 课程,一名学生问我们是否有实际原因将自动增量设置为 1,1 以外的值(种子从 1 开始,增量为 1)。为什么我们会将种子设置为更高的值或增加 1 以外的值,是否有实际的原因?只要该值是唯一的,就没有关系吗?
如果没有实际原因,为什么我们可以选择在 Microsoft SQL Server 中为 Identity 设置这些值?
解决方案
如果您使用有符号整数并从 1 开始,那么您只使用了可用范围的一半。数据类型的默认值实际上应该是从最小值开始,例如 -20 亿对于 32 位 int。
在某些情况下,您可能希望合并来自多个表的数据。在这种情况下,每个表都应该保留一个单独的 ID 范围。您可以让每个表以不同的数字开始,以防止重叠。例如,一个从 1 开始,另一个从 10 亿开始。或者您可以对一个 (1,2) 使用奇数,对另一个 (2,2) 使用偶数。
推荐阅读
- php - 致命错误:未捕获错误:找不到类“CI_DB_mysql_driver”
- amazon-web-services - Terraform 12 如何将for_each数据源转换成list和map
- javascript - javascript 从 forEach 循环返回 true 或 false
- scala - 在 Scala 中重新推断序列类型
- python-3.x - 如何使用 Tkinter 在文本小部件中突出显示 C++ 语法
- python - 将打印功能用于类级功能时出现问题
- jenkins - 无法读取詹金斯管道作业中的 gradle.properties
- python - 在后台执行 python 脚本,同时返回对话流响应(Python Flask)
- angular - Angular 不会在异步任务中显示任何类型的 Observable userdata
- react-native - 使用操作按钮时出现 Usenativedriver 错误 - 动画问题