2010-04-26 57 views
1

我正在使用内容管理系统,在删除记录之前会提示用户使用确认屏幕。一些记录是其他表中引用的外键,因此它们不能被删除。在MySQL中删除之前检查外键引用的方法?

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

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

回答

2

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

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

是的这就是我的想法。嗯。 – 2010-04-27 03:52:13