联结表中没有行引用它连接的表中的任何行

时间:2014-07-09 16:33:49

标签: mysql sql asp.net-mvc database

这是场景,有3个表:

  • 表1
  • 表2
  • table1_to_table2 - 连接table1和table2的联结表

在table1中删除行时,还必须在联结表中删除该行的所有引用。有可能在一段时间后,联结表中没有更多的行引用table2中的任何行。

您可以在联结表中定义ON DELETE CASCADE,以便在table1中删除记录时,在联结表中引用它的行也将被删除。您可以在应用程序中手动实现每次删除时清理table2。但是,有没有办法在mysql中定义模式,以便自动确保在发生这种情况时,将清除table2中的行?

2 个答案:

答案 0 :(得分:0)

没有默认的方法。您将不得不在Table1_to_table2表中执行“删除行”的检查。

答案 1 :(得分:0)

我没有通过架构定义看到这样做的方法。

您可以通过在绑定到table1上DELETE的存储过程内编码来保护该规则。