0% encontró este documento útil (0 votos)
58 vistas8 páginas

Guía de Triggers en Bases de Datos

El documento describe los triggers en bases de datos, incluyendo su definición, sintaxis para crearlos y tipos principales. Los triggers son componentes que se ejecutan automáticamente ante eventos como inserción, actualización o eliminación de datos. Se definen asociados a una tabla y contienen instrucciones SQL. Los principales tipos son triggers de inserción, actualización y eliminación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
58 vistas8 páginas

Guía de Triggers en Bases de Datos

El documento describe los triggers en bases de datos, incluyendo su definición, sintaxis para crearlos y tipos principales. Los triggers son componentes que se ejecutan automáticamente ante eventos como inserción, actualización o eliminación de datos. Se definen asociados a una tabla y contienen instrucciones SQL. Los principales tipos son triggers de inserción, actualización y eliminación.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNASAM Ingeniería de Sistemas e Informática

SESIÓN 40

I. TRIGGERS
1. Definición
Son objetos o componentes de una BD, que se les conoce como un caso especial de
procedimientos almacenados; es decir también están formados por instrucciones para
realizar operaciones, búsquedas, etc. Pero que son especiales porque para su
ejecución no necesitan que el usuario los invoque, sino que se disparan o ejecutan
automáticamente cuando sucede un evento sobre la tabla a la cual están asociados.
Todo trigger está asociado o vinculado a una tabla, y los eventos que se presentan en
las tablas pueden ser de inserción, actualización o eliminación.
Los triggers por lo general se utilizan para generar las pistas de auditoria del sistema
o sobre la misma base de datos y también para ayudar a cumplir las restricciones
generadas a partir de las reglas de negocio que se dan en los procesos de negocio de
las empresas u organizaciones.
Cuando trabajamos con triggers automáticamente se generan 2 objetos o variables,
que contienen información y la estructura del nuevo registro insertado o del antiguo
registro eliminado o modificado. Se trata de los objetos new y old, new se genera
cuando se inserta un registro y old cuando se actualiza o elimina un registro, por lo
tanto los triggers de inserción trabajan con el objeto new, los de eliminación, con el
objeto old y los de actualización con ambos objetos (new y old).
….El Autor.

2. Sintaxis para crear un Trigger


Su sintaxis general es la siguiente.
Delimiter//
Create Trigger nombreTrigger Momento Tipo On Tabla
For each row
Begin
Instrucciones;
End//
Delimiter;
Fuente: Elaboración propia

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

Sintaxis detallada

Delimiter//
Create Trigger nombreTrigger Before/After Insert/Update/Delete on Tabla
For each row
Begin
Instrucciones;
End//
Delimiter;
Fuente: Elaboración propia

Como se observa en la sintaxis es necesario indicar el momento en que se ejecuta


antes o después del evento (after / before), el tipo de evento inserción, modificación
o eliminación (insert, update y delete), cual es la tabla con la que se vincula (tabla
de la base de datos). Asi también no tiene argumentos o parámetros, pero al igual que
cualquier procedimiento en sus instrucciones se pueden usar variables, cursores y
flujos de control.
Para mostrar los triggers que existen en una base de datos, se ejecuta la siguiente
instrucción: show triggers, nos muestra los campos o datos de los triggers que
contiene la base de datos que está en uso.

3. Tipos de Triggers
Principalmente se trabaja con triggers DML, asociados a los eventos de inserción,
modificación y eliminación de registros, por lo tanto tenemos los siguientes tipos de
triggers:
a. Trigger de inserción
Son aquellos que se disparan o ejecutan cuando se da una inserción de registros
en la tabla a la cual está vinculado el trigger. Este tipo de trigger trabaja con el
objeto o variable new.

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

Ejemplo:

El trigger tgrProfesiones es de tipo Insert y se ejecuta después after de la


inserción de un registro en la tabla profesionxEmpleado (que contiene las
profesiones que pueden tener los empleados de una empresa). Permite cumplir un
requerimiento no funcional (un constraint), controla que un empleado no tenga
una profesión más de una vez, estando directamente en la base de datos.

El trigger tgr_creaMarca, es un trigger de inserción que se ejecuta después de que


se inserta una nueva marca, registra o audita en una tabla auditoria_marca, la
fecha, hora en que se insertó la nueva marca y el usuario actual cuando se inserto
la marca.

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

Entonces si se quiere hacer una inserción que viole estas restricciones como la
siguiente.

Nos muestra el siguiente resultado.

El trigger tgr_inserGenero es de inserción, se ejecuta después de la inserción de


un registro en la tabla persona, sirve para evitar que en la tabla persona en su
campo gen se ingresen valores diferentes a masculino o femenino. También
controla que el campo dni debe tener 8 dígitos. Si no cumple las restricciones, de
género o dni muestra el mensaje correspondiente.

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

El trigger tgr_pedido es de inserción que se dispara después de insertar un registro


en la tabla pedido de una BD, controla que los pedidos solo se registren con 5 días
de anticipación, de no ser asi no se registra y muestra el mensaje correspondiente.

b. Trigger de modificación
Este tipo de triggers se ejecutan cuando se realiza una modificación en los
registros de la tabla a la cual están asociados; generan automáticamente los objetos
new y el objeto old, con información del nuevo registro y del anterior o antiguo
registro. Como ejemplos de este tipo tenemos las siguientes.

El trigger tgr_updateFacultad, controla que cuando se haga una modificación en


el nombre de la facultad no se duplique el nombre de la facultad. Si la
modificación no genera duplicidad; es decir si se realiza, entonces la modificación
se audita en la tabla audFacultad (la cual se tiene que crear), registrándose la
fecha y hora de la modificación, el valor anterior y actual además del nombre del
usuario actual.

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

Muestra el siguiente resultado.

El trigger tgr_Unapecosa, se ejecuta antes de modificar la tabla pecosa, controla


que un ingreso no tenga más de una pecosa o dicho de otra manera, todo ingreso
de materiales solo tiene una pecosa.
c. Trigger de eliminación
Este tipo de trigger se ejecuta cuando se elimina un registro de la tabla a la que
está vinculado. Genera automáticamente el objeto old, que contiene los datos del
registro eliminado. Ejemplos:

El trigger tgr_DeleteFacultad se ejecuta antes de eliminar un registro de la tabla


facultad. Si tiene escuelas que le pertenecen, entonces primero las elimina.

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

El trigger tg_deletegenero se ejecuta después que se elimina un registro en la


tabla género. Controla que siempre se mantengan en esta tabla dos géneros.

PROPUESTOS

1. Implemente triggers que no permita que cuando se registra o modifican los registros de
la tabla facultad se duplique el nombre, pero si se llevó a cabo de manera correcta, registre
la fecha, la hora el usuario actual, el evento realizado (inserción o modificación), además
del nombre de la nueva facultad, en caso de modificación este debe estar acompañado del
nombre que tenía anteriormente.
2. Implemente triggers que controlen ya sea en la modificación o inserción de registros que
a un alumno solo se le considere como vulnerable en una sola escuela, además su código
nunca debe repetirse ni al insertar ni al eliminar.

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata


UNASAM Ingeniería de Sistemas e Informática

3. Implemente triggers que controlen ya sea en la modificación o inserción de registros que


las entregas de laptops o de chips de datos se hayan hecho en horario solo en horarios de
atención entre las 8am a 1pm y 2pm a 4pm.
4. Implemente triggers que controlen ya sea en la modificación o inserción de registros que
los alumnos no reciban más de una vez chip de datos o laptop(es decir no deben existir
alumnos con una cantidad mayor a un chip de datos o laptop).

PROGRAMACIÓN II Msc. Ing. Miguel Angel Silva Zapata

También podría gustarte