jueves, 24 de enero de 2013

Triggers

El soporte para TRIGGERS en MySQL se realizó a partir de la versión 5.0.2. Un trigger puede ser definido para activarse en un INSERT, DELETE o UPDATE en una tabla y puede configurarse para activarse ya sea antes o después de que se haya procesado cada renglón por el query.

Los TRIGGERS en MySQL tienen la misma limitante que las funciones. No pueden referirse a una tabla en general. Pueden solamente referirse a un valor del renglón que está siendo modificado por el query que se está ejecutando.

Las características más importantes de los TRIGGERS son:

Puede examinar el contenido actual de un renglón antes de que sea borrado o actualizado
Puede examinar un nuevo valor para ser insertado o para actualizar un renglón de una tabla
Un BEFORE TRIGGER, puede cambiar el nuevo valor antes de que sea almacenado en la base de datos, lo que permite realizar un filtrado de la información.
El siguiente ejemplo muestra un BEFORE TRIGGER para un SELECT de una tabla:

CREATE TABLE t(i INT, dt DATETIME);
delimiter $
CREATE TRIGGER t_ins BEFORE INSERT ON t
   FOR EACH ROW BEGIN
   SET NEW.dt = CURRENT_TIMESTAMP;
   IF NEW.i < 0 THEN
      SET NEW.i = 0;
   END IF;
END$
delimiter ;

No hay comentarios:

Publicar un comentario