在删除之前检查SQL中的完整性约束违规

时间:2010-10-29 12:06:44

标签: sql mysql constraints check-constraints

我的问题有点类似于this one

我想检查DELETE查询是否因违反约束而失败。我想在数据库级别上执行此操作,因为我认为让它失败并捕获错误很难看。

另一种选择是使用SELECT查询“手动”检查它是否存在约束,但这是相当繁琐的,imho。

是否有“本地”方式来执行此操作?

1 个答案:

答案 0 :(得分:3)

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

如果对其他表运行SELECT语句,则可能会了解行是否存在(暗示外键约束)。但是外键约束只是众多完整性约束中的一种。

您还必须考虑某些完整性约束可能会使用触发器实现(出于好的理由,错误的原因或完全没有理由)。