DATE
NULL
alias
Buy this Reference Manual in softcover from Barnes & Noble!
Поскольку MySQL пока что не поддерживает вложенных запросов, а также (до версии 4.0) использование более одной таблицы в команде DELETE
, то для удаления строк из 2 взаимосвязанных таблиц следует использовать следующий подход:
SELECT
строк на основе некоторого условия WHERE
.DELETE
строк главной таблицы на основе этого же условия.DELETE FROM related_table WHERE related_column IN (selected_rows)
.где selected_rows
- количество строк, выбранных по запросу в п.1.
Если общее количество символов в запросе с related_column
больше 1048576 (значение max_allowed_packet
по умолчанию), то следует разбить запрос на меньшие части и выполнить несколько команд DELETE
. Если related_column
является индексом/индексирован, то самый быстрый DELETE
получится при удалении 100-1000 идентификаторов related_column
за запрос. Если related_column
не индекс, то скорость не зависит от количества аргументов в операторе IN
.
Add your own comment.