我有两个包含数据的表。 我想删除两个表中的行。 但是我在它们之间有外键。 我该怎么做?
departure
id departure_date
1 2016-09-29
2 2016-09-30
departure_time
id departure_id (fk)
1 1
2 2
最好的办法是使用一个查询来删除所有行,并同时删除两个表中的行。 有没有办法在不删除约束/FK 的情况下执行此操作?
在这个例子中,假设我想删除从日期 2016-09-30 开始的所有出发
(删除departure: id 2和departure_time: id: 2)
最佳答案
请试试这个,希望它会有所帮助。
DELETE FROM departure, departure_time
USING departure
INNER JOIN departure_time
WHERE departure_date = '2016-09-30'
AND departure_time.id = departure.id
或者
DELETE FROM departure, departure_time
USING departure
INNER JOIN departure_time
WHERE departure_date = '2016-09-30'
AND departure_time.departure_id = departure.id
或者您可以使用 ON DELETE CASCADE
它将自动为您工作。
关于Mysql:用外键删除两个表中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39768995/