将业务逻辑生成的唯一值插入数据库

本文关键字:唯一 插入 数据库 业务 | 更新日期: 2023-09-27 18:05:35

在我的业务逻辑中,有一个函数通过一个随机函数创建一个唯一值(它是一个会话id)。

我必须确保,会话id是唯一的,然后我将它们存储到数据库中。所以我生成新的会话id,直到我找到一个,它还没有在数据库中。但是,在检查数据库中现有的会话id和写入会话id之间可能存在竞争条件。

数据库中用于写和读的函数使用两个不同的连接。我该怎么做呢?

我不能使用auto increments,因为下一个会话不应该是可猜测的

将业务逻辑生成的唯一值插入数据库

我认为您可以使此列UNIQUE(添加数据库约束),尝试插入新行并检查是否会返回关于重复值的错误。考虑到副本非常罕见,这可能是最快和最安全的方法。