繁体   English   中英

停止重复填充数据库中的++递增数字的最佳实践

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM