我有一个Web服务,其中我有一个生成增量编号的方法。然后,最后创建的内容将保存在数据库中。因此,下次客户端请求新号码时,它会使用上次保存的号码并将其增加一个。
数字看起来像这样:
PREFIX-12345
PREFIX-12346
PREFIX-12347
这很好用,但是现在存在并发问题,如果两个或多个客户端同时调用该方法,那么它们可能会得到相同的数字。
我在想我可以创建一个存储过程,可以获取数字,生成下一个,然后以某种方式锁定它,所以如果同时有另一个请求,它将增加两个。
现在我的问题是我不知道如何锁定下一个号码,以便任何人试图同时获得一个号码,可以得到另一个号码吗?
编辑:我忘了提一下,表结构是这样的:
ID | LastSavedNumber
1 | 12345
2 | 12346
3 | 12347
4 | 12348