Ошибки · Решение
MySQL error 1093: target table for update is used in FROM
Один SQL использует целевую таблицу и как источник подзапроса, и как объект модификации в конфликтующей форме.
Короткий ответ
MySQL 1093 возникает, когда statement пытается изменять таблицу и одновременно читать её недопустимым способом в subquery FROM.
Что означает ошибка
Один SQL использует целевую таблицу и как источник подзапроса, и как объект модификации в конфликтующей форме.
Возможные причины
- UPDATE/DELETE фильтрует строки через subquery к той же таблице.
- Optimizer merge превращает derived table обратно в проблемный self-reference.
- Query builder сгенерировал self-select вместо join/derived materialization.
Что проверить
- Сохраните полный statement и выделите target table.
- Проверьте, откуда тот же table name появляется во вложенном SELECT.
- Сравните вариант с materialized derived table или корректным self-join.
Безопасные шаги
- Перепишите запрос через допустимый JOIN/derived-table pattern.
- При использовании derived table убедитесь, что optimizer не сливает её обратно в исходный block.
- Проверьте результат на транзакционной копии данных перед массовым UPDATE/DELETE.
Только безопасные обратимые действия. Опасные шаги — только по официальной инструкции и с пониманием рисков.
Когда нужен сервис
- Для сложного массового DML с 1093 разработчик БД должен проверить план и семантику переписанного запроса, а не только факт исчезновения ошибки.
Похожие ошибки
- /errors/mysql-error-1005-cant-create-table/
- /errors/mysql-error-1040-con-count-error/
- /errors/mysql-error-1048-bad-null-error/
Что учитывать
Точная причина зависит от версии ПО/прошивки, полного текста ошибки и контекста. Официальная инструкция имеет приоритет.
Официальный источник
Расшифровка сверена с официальными страницами поддержки из источников ниже. Редакция N1RO не диагностировала ваш конкретный случай.