Eliminar de dos tablas a la vez con un Trigger:
Los activadores se utilizan para imponer la integridad de los datos en las tablas. Puede usar activadores para eliminar de cualquier número de tablas a la vez.
Antes de inicializar los disparadores, necesitamos cambiar el operador delimitador de mysql temporalmente porque los disparadores usan punto y coma ;
operador para especificar múltiples comandos sql dentro del disparador.
Paso 1 Cambiar delimitador actual:
delimiter $$
Paso 2 Crear disparador:
CREATE TRIGGER `blog_before_delete`
AFTER DELETE ON `blog`
FOR EACH ROW
BEGIN
DELETE FROM blog_tags where blogid = OLD.id;
DELETE FROM blog_comments where blogid = OLD.id;
END
$$
Paso 3 Restaurar delimitador anterior:
delimiter ;
Explicación:
OLD
es una palabra clave incorporada y se refiere a la fila de la tabla del blog que estamos eliminando. Mysql ejecuta el disparador blog_before_delete
siempre que eliminemos una entrada en la tabla del blog. Si el activador falla, la eliminación se revierte. Esto ayuda a garantizar Atomicidad, Consistencia, Aislamiento y Durabilidad
en nuestra base de datos.