sql >> Base de Datos >  >> RDS >> Mysql

Quiero un activador para ELIMINAR de 2 tablas en MySQL

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.