Это не работает:
delete p,b
from bookings b
left join payments p
on p.booking_id=b.id
where b.customer_id is null
Выдает эту ошибку:
SQLSTATE [23000]: нарушение ограничения целостности: 1451 Невозможно удалить или обновить родительскую строку: сбой ограничения внешнего ключа (busman
. payments
, CONSTRAINT payments_
booking_id_foreign
FOREIGN KEY (booking_id
) ССЫЛКИ bookings
(id
))
Но запись в виде двух отдельных утверждений работает:
delete p
from bookings b
left join payments p
on p.booking_id=b.id
where b.customer_id is null;
delete b
from bookings b
left join payments p
on p.booking_id=b.id
where b.customer_id is null;
Разве MySQL не достаточно умен, чтобы понять, что я разрешаю конфликт в том же заявлении, что я его нарушаю, или есть другой способ сделать это одним утверждением?