我想知道基于java中sql的唯一索引捕获异常是否是个好主意。
如果是这样,我想捕获像“1-0 的重复条目”这样的异常,然后处理异常,否则在数据库表中正确插入?
我想知道基于java中sql的唯一索引捕获异常是否是个好主意。
如果是这样,我想捕获像“1-0 的重复条目”这样的异常,然后处理异常,否则在数据库表中正确插入?
我说你不这样做,有两个原因:
我发现交易更简单:
性能问题:
我说测量两次,切割一次。分析您的特定用例的使用情况。我会说除了繁重的数据库使用场景外,性能不会成为问题。
原因是,一旦您SELECT
对该特定行执行操作,其数据将被放置在数据库缓存中,并立即用于对INSERT
语句的索引进行的插入检查。还要记住,这种访问是由索引支持的,因此得出的结论是性能不会成为问题。
但是,像往常一样,做测量。
我不明白为什么不。它可能比在插入之前运行查询更有效。不过,捕获异常的错误代码可能比识别错误消息更好。
您可以使用 REPLACE 命令。它根据记录的存在插入/更新。它也是原子的,而查询然后插入/更新不是。这取决于如果您检测到密钥违规,您想做什么?