Practica Trigger

Páginas: 10 (2459 palabras) Publicado: 3 de octubre de 2012
Administración de Bases de Datos

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...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Trigger
  • trigger
  • Trigger
  • Que es un trigger?
  • Trigger
  • Trigger smith
  • Schmitt trigger
  • Schmitt Trigger

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS