MySQL no soporta subconsultas en versiones previas a la 4.1, o
el uso de más de una tabla en la sentencia
DELETE anteriormente a la versión 4.0. Si su
versión de MySQL no soporta subconsultas, o sentencias
DELETE multi-tabla, puede utilizar las
siguientes estrategias para borrar registros de dos tablas
relacionadas:
Seleccione (SELECT) los registros basados
en una condición WHERE en la tabla
principal.
Borre (DELETE) los registros de la tabla
principal basándose en la misma condición.
DELETE FROM tabla_relacionada WHERE
columna_relacionada IN (registros_seleccionados).
Si la longitud total de la sentencia DELETE
para tabla_relacionada es más de 1MB (el
valor por defecto de la variable de sistema
max_allowed_packet), debería partirla en
partes más pequeñas y ejecutar múltiples sentencias
DELETE. Problablemente obtenga el borrado
más rápido especificando entre 100 y 1000 valores de
columna_relacionada por sentencia si
columna_relacionada está indexada. Si
columna_relacionada no está indexada, la
velocidad es independiente del número de argumentos en la
clausula IN.
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
