小编Lin*_*idt的帖子

Oracle 数据库读锁

我有一个要解决的问题。我需要临时锁定对表的读取。

这是场景。

我必须阅读一个表格来确定以基数开头的最大销售订单。然后我必须在小数点后添加数字。因此,如果我们有订单 123.1 和 123.2,我需要确定我需要创建的下一个订单是 123.3。然后我调用 API 来创建这个订单号。

问题是当两个用户同时想要向基本 123 订单号添加新的销售订单时。一个用户的逻辑判断号码是123.3,调用API创建订单;一旦创建,我提交记录。但是当 API 调用开始时,第二个用户的逻辑正在尝试确定下一个号码,并且根据时间,它也可以选择 123.3 作为下一个可用号码。

然后,一旦第二个用户的逻辑调用 API,该号码就会重复并出错。

我想让第一个逻辑在确定订单号并创建它时锁定表以防止读取。然后我可以释放锁,第二个用户可以继续。

我读过的一切似乎都在说我无法阻止对表的读取。

oracle locking

4
推荐指数
1
解决办法
2625
查看次数

标签 统计

locking ×1

oracle ×1