这是场景,有3个表:
在table1中删除行时,还必须在联结表中删除该行的所有引用。有可能在一段时间后,联结表中没有更多的行引用table2中的任何行。
您可以在联结表中定义ON DELETE CASCADE,以便在table1中删除记录时,在联结表中引用它的行也将被删除。您可以在应用程序中手动实现每次删除时清理table2。但是,有没有办法在mysql中定义模式,以便自动确保在发生这种情况时,将清除table2中的行?
答案 0 :(得分:0)
没有默认的方法。您将不得不在Table1_to_table2表中执行“删除行”的检查。
答案 1 :(得分:0)
我没有通过架构定义看到这样做的方法。
您可以通过在绑定到table1上DELETE
的存储过程内编码来保护该规则。