在我的应用中,我需要生成一个随机字符串并写入数据库表中的唯一键字段。 我想知道哪种方法更好:
由于字段是唯一键,在构建索引的情况下,2中的查询不会花费太多,但无论冲突多么罕见,查询始终存在。
还有什么需要考虑的吗?这里的标准做法是什么?
答案 0 :(得分:3)
在大多数情况下,我建议尝试编写您的值并处理密钥冲突(如果发生)。这种方法只需要在正常的happy-path下对数据库提出一个请求。此外,有可能(尽管可能不太可能)另一个进程可能会在您查询其存在的时间与插入它的时间之间插入冲突值。第一种方法可以防止这个问题。