¿Puedo borrar registros de 2 tablas en una única sentencia de SQL?
-
29-09-2019 - |
Pregunta
Tengo 2 tablas de una llamada "crítica" y el otro "REVIEW_DESCRIPTION"
Si hago una unión para obtener todos los datos de los dos:
SELECT *
FROM reviews
INNER JOIN reviews_description
ON reviews.reviews_id=reviews_description.reviews_id
WHERE reviews.customers_id = 54183
En base a esto me gustaría eliminar filas de ambas tablas que responden a este criterio de una sola vez, algún consejo?
Solución
Sí, MySQL soporta supresiones de más de una tabla en una sola declaración :
En la primera sintaxis de múltiples tablas, filas solamente emparejan de las tablas listadas antes de eliminar la cláusula FROM. Para la segunda sintaxis de múltiples tablas, se eliminan filas solamente emparejan de las tablas listadas en la cláusula FROM (antes de la cláusula USING). El efecto es que se puede eliminar filas de varias tablas al mismo tiempo y tienen tablas adicionales que se usan para buscar ...
En primer ejemplo de sintaxis de varias tablas:
DELETE reviews, reviews_description
FROM reviews r
JOIN reviews_description rd
WHERE reviews.reviews_id = reviews_description.reviews_id
AND reviews.customers_id = 54183
Otros consejos
A menos que tenga on cascade delete
o una configuración delete trigger
tiene que utilizar 2 declaraciones
sería borrado en cascada ayuda?