HOW TO:当删除表A上的记录时,与表A关联的表B上的所有记录也应删除吗?

问题描述

| 通过考虑以下方案: 我们需要确保,如果关联被删除,则属于该关联的所有狗也应被删除。 但是,这样做时,必须保留关联和Dog表之间实际存在的关系,因为每个关联可以有多个Dog,但是,一个Dog仅属于一个Association。因此,我相信外键配置是正确的。 我相信我应该在某个地方使用Cascade,但是我看不到哪里。 :( 请指教     

解决方法

选择\'Dog \'作为目标表,然后选择\'Foreign Keys \'标签,您应该在其中为\'association_id \'字段选择一个外键。找到后,只需检查\“外键选项\”部分中显示的\“删除时\”的弹出值,它应显示\'CASCADE \'(类似于上面的屏幕截图显示-如果不是\'只需显示\'CASCADE \'即可)。     ,在Dog和association之间添加关系:在Dog属性上,为association_id列添加一个新的外键,该键引用association.id。选择On Delete
CASCADE
。 您也可以在查询窗口中执行这些步骤(个人而言,仅在需要打印数据库结构时才使用图形工具)。
ALTER TABLE Dog ADD CONSTRAINT `FK_byAssociationIdDog` 
 FOREIGN KEY(association_id)  
REFERENCES Association(id) ON UPDATE CASCADE ON DELETE CASCADE;
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...