Ing Informatica
trigger – disparadores
En la consola de Mysql.
Create database prueba; // Crear la Base de Datos en la consola de Mysql
Use prueba; // Poner en uso la BBDD
CREATE TABLEclientes(
id_cliente int not null auto_increment,
nombre varchar(100),
seccion varchar(20),
PRIMARY KEY(id_cliente)
) ENGINE = InnoDB;
CREATE TABLE auditoria_clientes
(
id int not nullauto_increment,
nombre_anterior varchar(100),
seccion_anterior varchar(20),
nombre_nuevo varchar(100),
seccion_nueva varchar(20),
usuario varchar(40),
modificado datetime,
procesovarchar(10),
Id_Cliente int(4),
primary key(id)
) ENGINE = InnoDB;
Trigger : para insertar
CREATE TRIGGER Inserta_auditoria_clientes AFTER INSERT ON clientes FOR EACH ROW INSERT INTOauditoria_clientes(nombre_nuevo, seccion_nueva, usuario, modificado, proceso, Id_Cliente) VALUES (NEW.nombre, NEW.seccion, CURRENT_USER(), NOW(), ‘Incluido', NEW.id_cliente );
Trigger: para modificar
CREATE TRIGGERModifica_auditoria_clientes BEFORE UPDATE ON clientes FOR EACH ROW INSERT INTO auditoria_clientes(nombre_anterior, seccion_anterior, nombre_nuevo, seccion_nueva, usuario, modificado, proceso,Id_Cliente) VALUES (OLD.nombre, OLD.seccion, NEW.nombre, NEW.seccion, CURRENT_USER(), NOW(), ‘Actualizado‘, NEW.id_cliente);
Trigger : para eliminar
CREATE TRIGGER Elimina_auditoria_clientes AFTER DELETE ONclientes FOR EACH ROW INSERT INTO auditoria_clientes(nombre_anterior, seccion_anterior, usuario, modificado, proceso, Id_Cliente) VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW(), ‘Eliminado‘,OLD.id_cliente);
INSERT INTO clientes (nombre, seccion) VALUES
('Miguel','informatica'),
('Rosa','comida'),
('Maria','ropa'),
('Albert','informatica'),
('Jordi','comida');
Resultados:
Tabla ClientesTabla Auditoria_Clientes
Otra Forma de hacer los Triggers
Create accounting; // Crear la Base de Datos en la consola de Mysql
Use accounting; // Poner en uso la BBDD
/*Creamos...
Regístrate para leer el documento completo.