Могу ли я удалить строки из 2 таблиц в одном операторе SQL?
-
29-09-2019 - |
Вопрос
У меня есть 2 таблицы, одна из которых называется «обзор», а другая "Review_description"
Если я сделаю присоединение, чтобы получить все данные из обоих:
SELECT *
FROM reviews
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183
На основании этого я хотел бы удалить строки в обеих таблицах, которые соответствуют этим критериям в одном выстрелке, любые советы?
Решение
Да, MySQL поддерживает удаления от более чем одной таблицы в одном операторе:
Для первого синтаксиса нескольких таблиц только подходящие строки из таблиц, перечисленных до пункта из предложения. Для второго синтаксиса нескольких таблиц только подходящие строки из таблиц, перечисленных в пункте из предложения (до пункта использования), удаляются. Эффект заключается в том, что вы можете удалить строки из многих таблиц одновременно и иметь дополнительные таблицы, которые используются только для поиска ...
Первый мультител-синтаксис пример:
DELETE reviews, reviews_description
FROM reviews r
JOIN reviews_description rd
WHERE reviews.reviews_id = reviews_description.reviews_id
AND reviews.customers_id = 54183
Другие советы
Если у вас нет on cascade delete
или а delete trigger
Настройка необходимо использовать 2 оператора
Сможет ли каскад удалить помощь?