CREATE
DATABASE pruebas_dispara;
Use
pruebas_dispara;
CREATE TABLE clientes(id_cliente int not null
auto_increment,
nombre
varchar(100),seccion varchar(20),
Accion
varchar(10) default 'Insertado',
PRIMARY
KEY(id_cliente),
KEY(NOMBRE));
DESCRIBE
clientes;
INSERT
INTO clientes(nombre,seccion) VALUES
('Miguel','Informatica'),
('Rosa','Comida'),
('Maria','Ropa'),
('Albert','Informatica'),
('Jordi','Comida');
select * from clientes;
CREATE TABLE auditoria_clientes(id int not null
auto_increment,
nombre_anterior
varchar(100),
seccion_anterior
varchar(20),
nombre_nuevo
varchar(100),
seccion_nueva
varchar(20),
usuario
varchar(40),
modificado
datetime,
proceso
varchar(10),
Id_cliente int(4),
primary key(id));
DESCRIBE
auditoria_clientes;
DELIMITER
//
CREATE
TRIGGER Inserta_auditoria_clientes
AFTER INSERT ON clientes
FOR EACH ROW
BEGIN
INSERT
INTO
auditoria_clientes(nombre_nuevo,seccion_nueva,usuario,modificado,proceso,Id_Cliente)
VALUES
(NEW.nombre,NEW.seccion,CURRENT_USER(),NOW(),NEW.Accion,NEW.id_cliente);
END;
//
CREATE TRIGGER Modifica_auditoria_clientes
BEFORE UPDATE ON clientes
FOR EACH ROW
BEGIN
INSERT
INTO
auditoria_clientes(nombre_anterior,seccion_anterior,nombre_nuevo,seccion_nueva,usuario,modificado,Id_Cliente)
VALUES(OLD.nombre,OLD.seccion,NEW.nombre,NEW.seccion,CURRENT_USER(),NOW(),NEW.id_cliente);
END;
//
CREATE
TRIGGER Elimina_auditoria_clientes
AFTER DELETE ON clientes
FOR EACH ROW
BEGIN
INSERT
INTO
auditoria_clientes(nombre_anterior,seccion_anterior,usuario,modificado,Id_Cliente)
VALUES(OLD.nombre,OLD.seccion,CURRENT_USER(),NOW(),OLD.id_cliente);
END;
//
DELIMITER ;
SHOW TRIGGERS:
INSERT INTO CLIENTES(nombre,seccion) VALUES('Edith
Martinez','Informatica');
select * from clientes;
select * from auditoria_clientes;
UPDATE CLIENTES SET NOMBRE='JORDI APOLINAR',SECCION='PRODUCTIVIDAD'WHERE
ID_CLIENTE=5;
select * from clientes;
select * from auditoria_clientes;
DELETE FROM CLIENTES WHERE NOMBRE='Edith Martinez';
select * from clientes;
select * from auditoria_clientes;
No hay comentarios:
Publicar un comentario