He creado una consulta para eliminar filas de la tabla de millones de filas en mi sql. la consulta se da a continuación,
DELETE N
FROM table_a N
INNER JOIN table_b E ON N.form_id = E.form_id
AND N.element_id = E.element_id
AND E.element_type IN('checkbox','radio','select')
WHERE N.option_value = 0
ORDER BY id
LIMIT 1000;
Al ejecutar la consulta anterior. obtiene un error.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ORDER BY id
LIMIT 1000' at line 7
Cómo arreglar este problema. He usado la referencia Eliminando millones de filas en MySQL
La sintaxis DELETE de múltiples tablas de MySQL no permite LIMIT. Pero puede usar más condiciones en la cláusula WHERE:
DELETE N
FROM table_a N
INNER JOIN table_b E ON N.form_id = E.form_id
AND N.element_id = E.element_id
AND E.element_type IN('checkbox','radio','select')
WHERE N.option_value = 0
AND N.id BETWEEN 1 AND 1000;
Por supuesto, esto podría eliminar menos de 1000, si hay espacios en los que no N.id
se utilizan todos los valores de . Pero al menos no eliminará más de 1000 filas (suponiendo que id
sea una clave única).
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras