Я пытаюсь удалить из нескольких таблиц. Здесь мои таблицы выглядят как
A_has_B ---- B ---- C_has_B
(many to many) (many to many)
Я пытаюсь удалить все строки из A_has_B, B и C_has_B, учитывая ID записи в B. Я использую MySQL с движком хранения innodb с внешними ключами, определенными для A_has_B и C_has_B, ссылающимися на идентификаторы в B.
Я пытаюсь выполнить мое удаление так:
DELETE A_has_B.*, C_has_B.*, B.*
FROM
A
join
B
on (B.B_id = A.B_id)
join
C
on (C.B_id = B.B_id)
where B.B_id IN(1,2, 4);
Проблема заключается в том, что при выполнении запроса mysql жалуется:
Error Code: 1451. Cannot delete or update a parent row: a foreign key constraint fails (`db`.`C`, CONSTRAINT `fk_C` FOREIGN KEY (`B_id`) REFERENCES `B` (`B_id`) ON DELETE NO ACTION ON UPDATE NO)
Как я могу это исправить?