MySQL - 如何删除多对多关系中的相关行

MySQL - How to delete related rows in a many to many relationship

例如,如果删除了一个客户,其他 table(S) 上的所有相关行都将被删除。如何做到这一点 mysql,我尝试了很多解决方案但没有一个成功。enter image description here

您必须先 DELETE 地址,然后是客户,然后是关系 或者你可以尝试使用 DELETE 级联...但要小心 http://www.mysqltutorial.org/mysql-on-delete-cascade/ 也看到这个:MySQL on delete cascade. Test Example

DELETE FROM Addresses WHERE AddressID IN (SELECT AddressID FROM Custormers_Addresses WHERE CustormerID = ID)

然后 .. 删除客户 DELETE FROM Customers WHERE CustomerID = ID

然后 .. 删除关系 DELETE AddressID FROM Custormers_Addresses WHERE CustormerID = ID

实现此目的的最简单方法 是与设计相关的 tables ON DELETE CASCADE 选项

基本上,当您设计一个具有外键(其他table上的主键)的数据库table时,您可以 为该外键设置 ON DELETE CASCADE。这意味着当主table(这个外键是主键的table)上的记录被删除时所有相关记录其他 table 也被删除

因此,您无需考虑创建 "crazy" 查询来删除多个 table 上的相关数据。

您可以通过以下 link 了解有关 ON DELETE CASCADE 的更多信息:mysqltutorial。org/mysql-on-delete-cascade