Получить значение поля перед его удалением

#mysql #fetch #sql-delete

#mysql #извлечение #sql-удалить

Вопрос:

У меня есть две категории таблиц (иерархическая структура) и вложение, которые имеют отношения друг к другу.

 delete  from category where lft between @left and @right; 
  

и я хочу удалить из вложения, которое относится к этой категории!

Что мне делать?

Ответ №1:

Попробуйте:

 delete c,a category c 
 join attachment a on c.id=a.category_id 
 where c.lft between @left and @right
  

Ответ №2:

Я бы предложил использовать ИСХОДНЫЕ КЛЮЧИ с ограничениями InnoDB MySQL и внешнего ключа и определить опцию КАСКАДНОГО УДАЛЕНИЯ для ключа, который связывает категории и таблицы вложений.

Второй просто DELETE FROM attachments WHERE category_id BETWEEEN @left AND @right;