[英]Best practice to stop duplication of a ++ incremented number being populated in a database
我会尽力做到这一点。
我正在使用带有MS SQL数据库的C#MVC4对网站进行编码。 每当用户通过网站提交应用程序时,我都会在表上进行查找,找到编号最高的会话代码(7位数字),为此数字加1,并将其与用户详细信息一起填充到数据库中。
我们即将开始一个庞大的附加广告系列,并且会有大量的用户涌入。 我担心如果两个用户同时提交他们的申请,将会为两个用户生成相同的会话代码。 有哪些实践可以阻止这种情况? 我正在考虑使该字段在数据库中是唯一的,并在围绕我的会话代码生成和填充的地方有一个循环,以使其在失败时重试。
有没有比这更好的做法(除了创建复合主键之外)?
您可以从任何喜欢的号码开始进行号码identity
。 然后,数据库本身将1加到最大数上。
请参阅MSSQL文档
您可以将数字设置为标识符,并使其自动递增针对Microsoft SQL Server 2008 R2的索引自动递增
否则,如果可以更改数据类型,请创建Guid(数据库中的唯一标识符)。 那你很安全
在SQL Server Management Studio中,将列属性设置为
身份规范是(IS身份)是身份增量1身份种子[您的最后一个号码]
这会将该列设置为自动递增,因此您在向数据库提交数据时不再需要设置此列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.