Practica 5 Trigger
Practica 5 Trigger
Practica 5 Trigger
COMPUTACIONALES
MATERIA: Administracin de Bases de Datos
PRACTICA 5: Trigger
Alumno:
Elvis Josu Bautista Lpez 10320890
HORA: 11:00 12:00 PM
AULA: 706
FECHA: 27/05/2014
INSTITUTO
TECNOLOGICO DE ACAPULCO
Practica 5 Trigger
Creamos la base de Datos prueba.
Ponemos en uso la base de Datos mysql> use prueba; Creamos la tabla clientes.
Tabla: clientes
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)
) ENGINE = InnoDB;
Ahora crearemos la tabla auditoria_clientes, que ser utilizada para registrar todos los
cambios, que se hagan en la tabla clientes.
Tabla: Auditoria_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)
) ENGINE = InnoDB;
Comenzamos a crear los tres disparadores o trigger.
Trigger para insertar Inserta_auditoria_clientes
Trigger : para insertar
CREATE TRIGGER Inserta_auditoria_clientes AFTER INSERT ON clientes
FOR EACH ROW
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 );
Creamos Trigger para modificar Modifica_auditoria_clientes
Trigger: para modificar
CREATE TRIGGER Modifica_auditoria_clientes BEFORE UPDATE ON clientes
FOR EACH ROW
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);
Creamos Trigger para eliminar Elimina_auditoria_clientes
Trigger : para eliminar
CREATE TRIGGER Elimina_auditoria_clientes AFTER DELETE ON clientes
FOR EACH ROW
INSERT INTO auditoria_clientes(nombre_anterior, seccion_anterior, usuario, modificado,
Id_Cliente)
VALUES (OLD.nombre, OLD.seccion, CURRENT_USER(), NOW(), OLD.id_cliente);
Introducimos datos a la Tabla clientes
INSERT INTO clientes (nombre, seccion) VALUES
('Miguel','informatica'),
('Rosa','comida'),
('Maria','ropa'),
('Albert','informatica'),
('Jordi','comida');
Resultado en la Tabla clientes
pantallazo
Resultado en la Tabla Auditoria_clientes
pantallazo
CONCLUSION:
En esta prctica entramos en un nuevo tema que es el uso y creacin de trigger, estos son
de gran utilidad porque podemos realizar ciertos cambios a la base de datos sin necesidad
de que una persona ejecute las sentencias. Esto puede aplicarse para automatizar la
actualizacin de las tablas que estn relacionadas para un mismo fin.
Los trigger pueden ejecutar las siguientes Operaciones:
Insertar(INSERT)
Actualizacin(UPDATE)
Borrado(DELETE)
Los trigger tambin son conocidos como disparadores.