停止重复数据库中正在填充的++递增数字的最佳做法
本文关键字:最佳 数字 填充 数据库 | 更新日期: 2023-09-27 18:28:48
我会尽我所能把这个词写出来。
我正在使用C#MVC4和MS SQL数据库编写一个网站。每当用户通过网站提交申请时,我都会在表上查找,找到编号最高的会话代码(7位,数字),并将其与用户详细信息一起填充到数据库中。
我们即将开始一场大规模的添加活动,届时将有大量用户涌入。我担心如果两个用户同时提交他们的应用程序,会为两个用户生成相同的会话代码。有什么做法可以阻止这种情况?我想让这个字段在DB中是唯一的,并围绕我的会话代码生成和填充进行一个循环,以便在失败时重试。
有比这更好的实践吗(除了创建复合主键)?
您可以使数字identity
从您喜欢的任何数字开始。然后DB将自己将1加到最高数字上。
请参阅MSSQL文档
您可以将数字设置为标识符,并使其自动递增Microsoft SQL Server 2008 R2 的索引自动递增
否则,如果可以更改数据类型,请创建Guids(数据库中的uniqueidentifier)。那么你就可以很安全地避免碰撞
在SQL Server Management Studio中将列属性设置为
身份说明是(IS身份)是标识增量1身份种子[您的最后一个号码]
这会将该列设置为自动递增,然后在向DB 提交数据时不再需要设置该列