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

Cha*_*son 5 mysql foreign-keys

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

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

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

a1e*_*x07 2

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

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