Я пытаюсь удалить из нескольких таблиц сразу. Я сделал несколько исследований, и придумал этотКак удалить из нескольких таблиц в MySQL?
DELETE FROM `pets` p,
`pets_activities` pa
WHERE p.`order` > :order
AND p.`pet_id` = :pet_id
AND pa.`id` = p.`pet_id`
Однако, я получаю эту ошибку
Uncaught Database_Exception [1064]: У вас ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса использовать вблизи «р,
pets_activities
ра ...
Я никогда не делал кросс таблицы удалить, прежде чем, так что я неопытный и застрял Теперь!
Что я делаю неправильно?
Я попробовал это «удалить все в 1 запрос», присоединив 6 больших таблиц (каждый около ~ 15 тыс. Строк), и запрос занял 155 секунд, чтобы удалить 63 строки в 6 таблицах: O – techouse
@cadman Это реальный правильный ответ; могут быть аргументы против его использования, но это очень полезно иногда –
+1 Я согласен, что это в реальном правильном ответе, так как вопрос был не «должен ли ты», а «как». Однако мне было бы интересно услышать о 1%, потому что я не могу придумать ни одной ситуации, когда это было бы предпочтительнее. –