使用Jdbc捕获某些FK异常

时间:2011-04-17 06:16:14

标签: java mysql jdbc foreign-keys

我正在使用Jdbc。当外键约束被破坏时,抛出MySQLIntegrityConstraintViolationException。

现在我只是在进行插入之前进行一些预检查以防止这种情况发生。但我在想..试着直接插入然后捕获异常会更有效吗?你怎么看待这个?

为了实现这一点,我需要能够检查为什么在捕获之后抛出了MySQLIntegrityConstraintViolationException。例如,我可能需要知道哪个 FK约束失败。可以这样做吗?

1 个答案:

答案 0 :(得分:2)

  

但是我在想......尝试直接插入然后捕获异常会更有效吗?

如果异常很少发生(通常是这种情况),这确实是一种更有效,更简单的方式。

如果获得FK违规的可能性很高,那么预插入检查(假设它们没有到达数据库)将保存往返db并返回,从而提高效率。

回复:找出失败的原因。供应商异常通常包含有关哪些约束触发了异常的一些信息。您应该查看供应商例外的字段和方法。