Tarea 9
- Ejemplo de TRIGGER
Ing. Douglas Iván Galvis Carrillo
galvisdouglas@gmail.com
- Índice
1.- Definiciones de Triggers.
2.- Herramientas Wampserver (PhpMyadmin)
3.- Ejemplo de Triggers
- Definición de Trigger o Disparadores
El
soporte para disparadores se incluyó a partir de MySQL 5.0.2.
Actualmente, el soporte para disparadores es básico, por lo tanto hay
ciertas limitaciones en lo que puede hacerse con ellos.
Un
disparador es un objeto de base de datos con nombre que se asocia a una
tabla, y se activa cuando ocurre un evento en particular para la tabla.
Algunos usos para los disparadores es verificar valores a ser insertados
o llevar a cabo cálculos sobre valores involucrados en una
actualización.
Un disparador se asocia con una tabla y se define
para que se active al ocurrir una sentencia INSERT, DELETE, o UPDATE
sobre dicha tabla. Puede también establecerse que se active antes o
después de la sentencia en cuestión. Por ejemplo, se puede tener un
disparador que se active antes de que un registro sea borrado, o después
de que sea actualizado.
- Triggers en Mysql - Básico
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.
Sintaxis necesaria para crear un trigger
CREATETRIGGER
<nombre> {BEFORE|AFTER}
{INSERT|UPDATE|DELETE}ON<tablename>FOR EACH ROW BEGIN
<sentenciasSQL> END;
- 2.- Herramientas Wampserver (PhpMyadmin)
En
esta ocasión trabajaremos en la consola de phpmyadmin, para ello
debemos tener instalado en nuestro PC la herramienta Wampserver 2.0i
- Una vez instalado, entrados haciendo click en el icono del escritorio
- En la Barra de tareas entramos en el icono
Y entramos en la consola de Mysql
- 3.- Ejercicio de Triggers
1. Una vez en la consola de Phpmyadmin, creamos la bases de Datos prueba
2. Ponemos en uso la base de Datos mysql> use prueba; Creamos la tabla clientes
- 3.
Ahora crearemos la tabla auditoria_clientes, que será utilizada para
registrar todos los cambios, que se hagan en la tabla clientes
4. Comenzamos a crear los tres disparadores o trigger. Trigger para insertar Inserta_auditoria_clientes
- 5.- Creamos Trigger para modificar Modifica_auditoria_clientes
6.- Creamos Trigger para eliminar Elimina_auditoria_clientes
- 7.- Introducimos datos a la Tabla clientes
8.- este es el resultado en la Tabla clientes
9.- finalmente este es el resultado en la Tabla Auditoria_clientes
- Códigos
- Tabla: clientes
CREATE TABLE clientes(id_clienteintnotnullauto_increment, nombre varchar(100),
seccionvarchar(20), PRIMARY KEY(id_cliente),
) ENGINE = InnoDB;
Tabla: Auditoria_clientes
CREATE TABLE auditoria_clientes(
id intnotnullauto_increment,
nombre_anteriorvarchar(100),
seccion_anteriorvarchar(20),
nombre_nuevovarchar(100),
seccion_nuevavarchar(20),
usuario varchar(40),
modificado datetime,
proceso varchar(10),
Id_Clienteint(4),
primary key(id)) ENGINE = InnoDB;
- Trigger : parainsertar
CREATE
TRIGGER Inserta_auditoria_clientes AFTER INSERT ON clientesFOR EACH
ROWINSERT INTO auditoria_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
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, proceso, Id_Cliente)
VALUES (OLD.nombre, OLD.seccion, NEW.nombre, NEW.seccion,
CURRENT_USER(), NOW(), ‘Modificado‘, NEW.id_cliente);
- Trigger : paraeliminar
CREATE
TRIGGER Elimina_auditoria_clientes AFTER DELETE ON clientes FOR EACH
ROWINSERT 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');
0 comentarios:
Publicar un comentario
Suscribirse a Enviar comentarios [Atom]
<< Inicio