0

需要创建序列,以便代码当前在做什么 select max(name) from table where item1 = '' and item2= '' and item3 = '' 。获取最大值后,它会插入从最大值开始的元素。但这会导致并发问题。

注意:查询将始终在同一个分区中执行

目前我有两种方法:

一种是创建一个序列表,其中将包含 ID 和序列作为列。序列列将包含该 ID 的最后一个序列号。这将使用乐观并发进行更新。

第二个是使用存储过程。

但是,如果存在的话,我仍然在寻找一些更好的方法。

4

1 回答 1

0

除了使用信号量等使事情复杂化之外,没有更好的方法,但我认为您使用乐观并发控制的方法可以正常工作。

在这种情况下,存储过程根本不会帮助您。

ChangeFeed 可能是事后更新事物的一种方式,但我看不出这对您有什么帮助,除非您制作一个单独的文档来跟踪当前号码等,但这似乎对您想要的东西来说太过分了。

于 2022-02-08T07:44:39.433 回答