ran
Новичок
Удаление записей из нескольких таблиц по одному условию
Добрый день.
У меня есть 2 таблицы практически одинаковой структуры user_relation, event_relation.
user_relation:
id
user_id
relation_id
и таблица event_relation
id
event_id
name
При удалении записи из relation нужно удалить все связанные с ними в таблицах user_relation, event_relation.
Использую такой запрос
DELETE user_relation, event_relation FROM user_relation, event_relation
WHERE
user_relation.relation_id = 2
AND
event_relation.relation_id = 2
Если в обеих таблицах есть записи с relation_id = 2, то удаляет все без проблем, иначе, если одна из таблиц не содержит ни одной записи с relation_id = 2, то и удалять в ней ничего, но при этом не удаляются записи из второй( в которой есть записи с relation_id = 2).
Использовать ON DELETE - CASCADE не могу, т.к. таблицы MyIsam.
Возможно ли удалить записи из нескольким таблиц, если не все из них удовлетворяют условию удаления одним запросом, и если можно, то где про это можно прочитать?
Если нет, то можно и несколькими, но уже 2й раз сталкиваюсь с такой проблемой и интересно, есть ли решение, кроме как использование FK или удаление несколькими запросами.
Добрый день.
У меня есть 2 таблицы практически одинаковой структуры user_relation, event_relation.
user_relation:
id
user_id
relation_id
и таблица event_relation
id
event_id
name
При удалении записи из relation нужно удалить все связанные с ними в таблицах user_relation, event_relation.
Использую такой запрос
DELETE user_relation, event_relation FROM user_relation, event_relation
WHERE
user_relation.relation_id = 2
AND
event_relation.relation_id = 2
Если в обеих таблицах есть записи с relation_id = 2, то удаляет все без проблем, иначе, если одна из таблиц не содержит ни одной записи с relation_id = 2, то и удалять в ней ничего, но при этом не удаляются записи из второй( в которой есть записи с relation_id = 2).
Использовать ON DELETE - CASCADE не могу, т.к. таблицы MyIsam.
Возможно ли удалить записи из нескольким таблиц, если не все из них удовлетворяют условию удаления одним запросом, и если можно, то где про это можно прочитать?
Если нет, то можно и несколькими, но уже 2й раз сталкиваюсь с такой проблемой и интересно, есть ли решение, кроме как использование FK или удаление несколькими запросами.