A continuación veremos un pequeño ejemplo de trigger en MySQL, que guarda los datos de una tabla en otra, cada vez que estos se modifican. La segunda tabla puede servir para el seguimiento y auditoría de la modificaciones realizadas en la tabla principal.

CREATE TABLE clientes(
    id_cliente int NOT NULL,
    nombre varchar(64),
    seccion char(16),
    PRIMARY KEY(id_cliente),
    KEY(nombre)
) ENGINE = InnoDB;

CREATE TABLE clientes_auditoria (   
    id_cliente int NOT NULL,
    nombre varchar(64),
    seccion char(16),
    usuario_mod char(32) NOT NULL,
    int fecha_mod NOT NULL,
    PRIMARY KEY(id_cliente,fecha_modificacion)
) ENGINE = InnoDB;

DELIMITER $$

CREATE TRIGGER trigger_clientes_auditoria AFTER UPDATE ON clientes
FOR EACH ROW
    INSERT  INTO clientes_auditoria (id_cliente, nombre, seccion, usuario_mod, fecha_mod )
     VALUES (OLD.id_cliente, OLD.nombre, OLD.seccion, CURRENT_USER(), UNIX_TIMESTAMP() );

DELIMITER ;

Vía: Gulsin 2.0rg