【问题标题】:Auto remove row in mysql自动删除mysql中的行
【发布时间】:2011-12-07 19:38:28
【问题描述】:

我正在想办法在删除最后一个外键引用时自动从表中删除一行。 - 那就是我正在寻找一种垃圾收集。

我一直在尝试不同的方法,比如引用计数,但是我在想是否可以使用 on delete 和 on update 操作来实现?

【问题讨论】:

  • 你试过触发器吗?编写一个触发器,以便在删除具有对主行的外键引用的每一行时,系统检查是否存在具有对主行的外键引用的任何其他行。如果不删除主行

标签: mysql


【解决方案1】:

听起来您走在正确的道路上。我会调查cascade。级联非常强大,因此您可能还想查看soft deletes

【讨论】:

  • 我喜欢软删除的想法,但是我将有一个多对一的关系,这样我在表 A 中有许多条目,它们对同一个条目有一个外键在表 B 中。 - 当从表 A 到表 B 中的条目的最后一个 FK 被删除时。我想从表 B 中删除该对象(可能通过使用软删除)。 - 因此,它与 C++ 中的引用计数非常相似,对同一个对象的大量引用,当最后一个对象消失时,我希望删除该对象。
  • 我必须使用触发器来执行此操作吗?
  • 不,你可以像 Jan 的回答那样使用 on delete 子句来做到这一点。
  • 那我想我不太确定怎么做?
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2014-08-25
  • 2013-11-25
  • 2015-06-04
  • 2012-11-18
  • 2019-12-14
  • 2011-01-13
相关资源
最近更新 更多