Practica Trigger
Ing. Luis Reyes
DBDII – Ing. Luis Reyes
Triggers
Un trigger es un procedimiento almacenado asociado con una tabla,
el cual se ejecuta automáticamente cuando se modifica un dato de esa tabla.
automáticamente una sentencia SQL cuando ocurre un evento. UPDATE mientras que las columnas intervenientes en el update sean disjuntas (datos no comunes). Un trigger es un mecanismo de la base de datos para ejecutar
Una tabla sólo pueden tener trigger de INSERT o DELETE, y mas de uno de
Son procedimientos que se ejecutan de manera automática cuando una
estructura INSERT, UPDATE o DELETE es empleada sobre una tabla. Así mismo pueden estar asociados a eventos que ocurran sobre la Base de datos
DBDII – Ing. Luis Reyes
Cuando usarTriggers
Reglas de consistencia (no provistas por el modelo
relacional) Replicación de datos Auditoría Acciones en cascada Autorización de seguridad
DBDII – Ing. Luis Reyes
Para que sirve un Trigger
Son ampliamente empleados en la personalización de la Administración de la BD Generación automática de valores derivados de una columna Prevenir transacciones invalidas Proporcionar auditorias sofisticadas Mantener la sincronía en tablas replicadas Generar estadísticas de acceso Modificar los valores de una vista
DBDII – Ing. Luis Reyes
Ejecución
La ejecución se realiza cuando una tabla a la que
esta asociada el trigger genera un evento, ya sea de inserción, eliminación o actualización. Los triggers están almacenados en una tabla de catálogo delsistema como parte de la propiedades de la tabla Son optimizados antes de la ejecución
DBDII – Ing. Luis Reyes
Que es un Trigger
DBDII – Ing. Luis Reyes
Definición de reglas de actividad
Define el comportamiento activo del sistema. Aplicaciones:
• comprobación de restricciones de
integridad • control de la seguridad • definición de reglas de funcionamiento de la organización• mantenimiento de información derivada
DBDII – Ing. Luis Reyes
Forma de una regla de Actividad
Evento - Condición - Acción
acción que el sistema ejecuta cuando como respuesta a la ocurrencia de un evento cuando cierta condición se satisface.
• evento: operación de actualización • condición: expresión lógica del SQL
• acción: procedimiento escrito que incluye instrucción
demanipulación de la BD)
DBDII – Ing. Luis Reyes
Sintaxis
definición_regla::= {CREATE | REPLACE} TRIGGER nombre_regla {BEFORE | AFTER | INSTEAD OF} evento [disyunción_eventos] ON {nombre_relación | nombre_vista} [ [REFERENCING OLD AS nombre_referencia [NEW AS nombre_referencia] ] [FOR EACH {ROW | STATEMENT} [WHEN ( condición ) ] ] bloque SQL disyunción_eventos ::= OR evento [disyunción_eventos] evento ::=INSERT | DELETE | UPDATE [OF comalista_nombre_atributo]
DBDII – Ing. Luis Reyes
CREATE TRIGGER {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON FOR EACH ROW BEGIN END;
DBDII – Ing. Luis Reyes
Componentes de Create Trigger
Create trigger Nombre
tabla
DBDII – Ing. Luis Reyes
Eventos del Trigger
Create trigger insert on
Create trigger delete on
Createtrigger update on Create trigger update of
on
DBDII – Ing. Luis Reyes
Acciones del Trigger
before (execute procedure proc1(..))
Ejecutado antes que las filas sean procesadas
for each row (execute procedure proc1(..))
Ejecutado después que cada fila sea procesada
after (execute procedure 0 THEN RAISE_APPLICATION_ERROR(-20000, ‘No se puede realizar esta operación’); END IF;END;
DBDII – Ing. Luis Reyes
Ejemplo de Auditoria
DROP TRIGGER tu_envios ;
CREATE TRIGGER tu_envios UPDATE on envios referencing old as vieja new as nueva FOR EACH ROW ( INSERT INTO log_envios (id_congreso, id_trabajo, fecha, usuario, fecha_act, oper) VALUES (nueva. id_congreso, nueva.id_trabajo, nueva.fecha, User, today, 'U'); );
Cuando se modifique algún dato en la tabla...
Regístrate para leer el documento completo.