1

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

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

数据库中的写入和读取功能使用两个不同的连接。我该如何管理?

我不能使用自动增量,因为下一个会话应该是不可猜测的。

4

1 回答 1

3

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

于 2013-03-25T10:50:03.630 回答