在我的业务逻辑中,有一个函数可以通过随机函数创建一个唯一值(它是一个会话ID)。
我必须确定,在将它们存储到数据库之前,会话ID是唯一的。 所以我正在生成新的会话ID,直到我找到一个,还没有在数据库中。 但是在检查数据库中的现有会话ID和编写它之间可能存在竞争条件。
在数据库中写入和读取的功能使用两种不同的连接。 我该如何管理?
我不能使用自动增量,因为下一个会话不应该是可猜测的。
答案 0 :(得分:3)
我认为您可以创建此列UNIQUE
(添加数据库约束),尝试插入新行并检查它是否会返回有关重复值的错误。考虑到重复是非常罕见的,它可能是最快和最安全的方法。