MySQL удаление нескольких таблиц с внешними ключами - PullRequest
0 голосов
/ 14 января 2019

Это не работает:

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 не достаточно умен, чтобы понять, что я разрешаю конфликт в том же заявлении, что я его нарушаю, или есть другой способ сделать это одним утверждением?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...