2010-10-29 106 views
3

我的问题是有点类似于this one检查完整性约束违反SQL之前删除

我要检查,如果删除查询将因违反约束而失败。我想在数据库级别上这样做,因为我认为让它失败并捕获错误是很难的。

另一个选择是“手动”使用SELECT查询来检查它是否存在约束,但这是非常繁琐的,恕我直言。

有没有“本土”的方式来做到这一点?

回答

3

最简单和最直接的方法是执行DELETE并捕获错误。

如果您针对其他表运行SELECT语句,您可能会知道行是否存在(意味着外键约束)。但是外键约束只是多种完整性约束中的一种。

你也必须考虑一些完整性约束可能与触发器(出于充分的理由,不好的理由或根本没有理由)实现。