Triggers+o+Disparadores

= //**LOS TRIGGERS O DISPARADORES**// =

Son objetos de la base de datos que ejecutan **acciones** cuando se producen ciertos **eventos (tanto DML como DDL)** (inserciones, modificaciones, borrados, creación de tablas, etc).

SEGUN LA BASE DE DATOS DE LA __//**FABRICA**//__ EN ANTERIORES PAGINAS HEMOS CREADO

EJEMPLO:

====**1. insertar un pedido de algún producto cuando la cantidad de éste, en nuestro factura, sea inferior a un valor dado. **====

BEFORE UPDATE ON facturas FOR ALL records IF :NEW.productos < 100 THEN INSERT INTO facturas_productos(productos) VALUES ('3'); END IF; SELECT facturas_productos.cantidad. END

Los Dispararores 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.
 * 2.**

**ejemplo**
CREATE TABLE clientes ( id int not null auto_increment, nombre varchar(100), seccion varchar(10), PRIMARY KEY(id), KEY(nombre) ) ENGINE = InnoDB;

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) ) ENGINE = InnoDB;

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 ); CREATE TRIGGER trigger_auditoria_usuarios AFTER UPDATE ON usuarios FOR EACH ROW INSERT INTO auditoria_usuarios(Nombre_usuario, Anterior_pass, Usuario, Modificado ) VALUES (OLD.Nombre_usuario, OLD.Pass, CURRENT_USER, NOW );