我有一个多对多关系的简短问题。 这里是我的表:删除正确的多对多关系
+---------+----------------+
| film_id | title |
+---------+----------------+
| 1 | Apocalypse Now |
+---------+----------------+
+-------------+----------------------+
| category_id | name |
+-------------+----------------------+
| 1 | cool category |
+-------------+----------------------+
| 2 | not so cool category |
+-------------+----------------------+
+---------+-------------+
| film_id | category_id |
+---------+-------------+
| 1 | 1 |
+---------+-------------+
| 1 | 2 |
+---------+-------------+
正如你可以看到有从film
FKS - 和category
-table在film_category
- 表。
我想要什么:如果想删除category
,然后在film_category
在category_id
发生应该删除,太所有条目。但不是相关的film
s!除此之外:这应该工作,同时删除film
反之亦然! (这正是我的问题就在这里)
我的问题:我能解决这个问题,只有一个FK-定义或做我必须删除film_category
- 表中的所有条目删除film
或category
之前手动?
您可以用正常的做到这一点'ON DELETE CASCADE'参照触发外键的动作。 – GarethD
当我这样做,然后删除一个'类别',相关的'电影'也被删除。 – Sonnywhite
你可以发表你的表和外键的定义,[在sql小提琴](http://sqlfiddle.com/#!2/8f8ae0/1)我已经完成,当一个类别被删除时,它只会删除film_category中的行与该category_id,并保持电影表不变。 – GarethD