Índice

Desarrollar triggers

1. Definición

Un trigger (desencadenador o disparador en español) es una rutina almacenada asociada a una tabla que se desencadena automáticamente cuando un evento de actualización (INSERT, UPDATE o DELETE) se lleva a cabo en la tabla. Un trigger nunca es ejecutado explícitamente por otra rutina.

Los triggers permiten implementar reglas de gestión del lado del servidor. Los principales usos de los triggers son los siguientes:

  • Calcular automáticamente el valor de una columna: por ejemplo, un trigger puede utilizarse para calcular automáticamente un precio con IVA a partir de un precio sin IVA y un índice de IVA.

  • Hacer un seguimiento de las actualizaciones en la base de datos: por ejemplo, cada vez que se elimina un artículo, un trigger registra la eliminación (quién, cuándo, qué) en una tabla de auditoría.

Los triggers pueden utilizarse en MySQL desde la versión 5.0.2.

2. Administración de los triggers

La sentencia CREATE TRIGGER permite crear trigger.

Sintaxis:

CREATE TRIGGER [nombre_base.]nombre_trigger 
  {BEFORE | AFTER} 
  {INSERT | UPDATE | DELETE} 
  ON nombre_tabla 
  FOR EACH ROW 
  [{FOLLOWS | PRECEDES} otro_trigger] 
BEGIN 
  instrucciones; 
END;

nombre_base designa la base de datos en la que debe definirse el trigger. De manera predeterminada, la rutina se almacena en la base de datos actual.

nombre_trigger especifica el nombre del trigger. Este nombre debe respetar las reglas para los nombres de objetos ...