在MySQL中删除之前检查外键引用的方法?

时间:2010-04-26 23:21:36

标签: mysql foreign-keys

我正在使用内容管理系统,在删除记录之前会向用户提示确认屏幕。某些记录是其他表中引用的外键,因此无法删除它们。

如果有外键引用,我想在给定记录旁边显示一条消息。要知道我是否应该显示记录的消息,我可以只查询引用表并查看是否有引用。但问题是,大约有十几个表的记录可能会引用此记录,而查找可能需要很长时间。

是否有一种简单的方法可以判断记录是否已准备好删除(即没有外键引用)?

1 个答案:

答案 0 :(得分:2)

如果您使用支持事务的数据库引擎,那么我认为最简单的方法是不检查所有可能引用已删除记录的表:

  1. 开始新交易
  2. 尝试删除请求的记录
  3. 如果删除了记录,则可以将其删除。如果发生错误,则无法删除,并且您可以向用户显示消息。
  4. 回滚交易