gpt4 book ai didi

java - Select 和 Create_If_Not_Available 与始终在具有唯一约束的表上创建

转载 作者:行者123 更新时间:2023-12-01 13:47:02 25 4
gpt4 key购买 nike

请回答这个基本问题。

我有一个表 T,对复合列“A”和“B”具有唯一约束。

在创建 T 条目时,我有两个选择:

<强>1。选择并创建_If_Not_Available

a.从 T 中选择 *,其中 A='a' 且 B='b'。b.如果没有可用条目,则创建一个新条目(由于竞争条件而处理 ConstraintViolation),否则转到下一步。

<强>2。始终创造

a.创建数据库条目(通过处理 ConstraintViolation 并依赖数据库的唯一约束)。

据我所知,第二个将减少对数据库的查询和对数据库的回复(在应用程序代码之外)。

首先进行大量不必要的调用,但对数据库的唯一约束的依赖性很小。

鉴于规模较大,我应该选择哪一个?为什么?

我正在使用 Java、Hibernate 和 Oracle。

谢谢

最佳答案

数据库在步骤 2 中完成的事情无论如何都必须在步骤 1 中完成,因此从纯粹的效率角度来看,步骤 2 更好。为什么你关心“对独特约束的依赖”?从诚信的角度来看,您需要它们。

如果您的应用程序尝试为现有键插入大量记录,那么在我看来您还有其他问题。

关于java - Select 和 Create_If_Not_Available 与始终在具有唯一约束的表上创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20290013/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com