- Los eventos pueden ser las sentencias INSERT, DELETE, UPDATE que modifican los datos de una tabla.
- Los triggers se pueden ejecutar antes(BEFORE) y/o después(AFTER) de que sean modificados los datos.
- Los triggers tienen dos palabras clave, OLD y NEW que se refieren a los valores que tienen las columnas antes y después de la modificación. Los INSERT permiten NEW, los DELETE sólo OLD y los UPDATE ambas.
Ejemplo:
El siguiente trigger seria guardar los datos que se modifican de un cliente en otra base de datos que serviría de
auditoria.
Creamos la tabla de clientes y agregamos algunos registros:
CREATE TABLE clientes(
id int not null auto_increment,
nombre varchar(100),
seccion varchar(10),
PRIMARY KEY(id),
KEY(nombre)
);
INSERT INTO clientes (nombre, seccion) VALUES
('Miguel','informatica'),
('Rosa','comida'),
('Maria','ropa'),
('Albert','informatica'),
('Jordi','comida');
Ahora creamos una tabla que será la que guardará los datos de la "auditoria":
CREATE TABLE auditoria_clientes
(
id int not null auto_increment,
nombre varchar(100),
anterior_seccion varchar(10),
usuario varchar(40),
modificado datetime,
primary key(id)
);
y por último creamos un trigger que se disparará cada vez que alguien modifique un dato de la tabla clientes y lo guardará en una tabla junto al nombre del usuario y la fecha.
CREATE TRIGGER trigger_auditoria_clientes AFTER UPDATE ON clientes FOR EACH ROW
INSERT INTO auditoria_clientes(name, anterior_seccion, usuario, modificado ) VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW() );
Ejercicio:
Realizar una base de datos con la siguiente estructura, capturar al menos 10 registros de tal manera que permita ejecutar un trigger, creando una tabla de respaldo como en el ejemplo anterior o .


No hay comentarios:
Publicar un comentario