Могу ли я удалить строки из 2 таблиц в одном операторе SQL?

StackOverflow https://stackoverflow.com/questions/3497468

Вопрос

У меня есть 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 оператора

Сможет ли каскад удалить помощь?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top