Cómo crear y borrar un trigger en MySQL

Antonio Galisteo

En ocasiones olvidamos que realizar cualquier acción de base de datos en la capa de aplicación es más costoso normalmente que delegarlo a la base de datos. Hay determinadas tareas que se deben ejecutar cuando ocurre algo en la base de datos y para esto, es aconsejable usar triggers.

Vamos a crear un trigger en MySQL que, cuando un item sea borrado de una tabla, borre otro con el mismo ID en otra tabla. (Este ejemplo se podría hacer con un simple ON DELETE CASCADE, pero lo vamos a usar como ejemplo). Veamos el código y después lo comentamos.

CREATE DEFINER = user@localhost
TRIGGER delete_tabla2_trigger 
AFTER DELETE ON tabla1 
FOREACH ROW 
DELETE FROM tabla2 WHERE cod LIKE OLD.cod

Lo comentamos:

Con la línea:

CREATE DEFINER = user@localhost

Estamos indicando quién esta definiendo el trigger.

En la siguiente línea:

TRIGGER delete_tabla2_trigger

Especificamos que vamos a crear un trigger y su nombre.

Con lo siguiente:

AFTER DELETE ON tabla1

Indicamos cuando se disparará el trigger, en este caso, después de un borrado en tabla1.

Con la siguiente línea:

FOREACH ROW

Indicamos la frecuencia con la que se dispara el trigger.

Y finalmente, definimos la acción a realizar:

DELETE FROM tabla2 WHERE cod LIKE OLD.cod

Hace un borrado en tabla2 cuando el cod del item de tabla2 se igual al cod del item borrado en tabla1. Con OLD.cod accedemos al item borrado para poder usarlo en esta sentencia.

Por último, si deseamos borrar el trigger, bastará con la siguiente línea:

DROP TRIGGER IF EXISTS delete_tabla2_trigger;

Esperamos que os haya sido de utilidad.

Publicado el 10-11-2015

Compartelo!

Deja un comentario

Comentanos

*
Ir arriba de la pagina