Documentos de Académico
Documentos de Profesional
Documentos de Cultura
DESENCADENANTES O TRIGGERS
I.
II.
OBJETIVOS
Comprender el concepto de trigger.
Estudiar los componentes del trigger
Conocer los tipos de triggers
Razonar la forma de utilizacin del trigger
MARCO TERICO
DESENCADENADORES
Al igual que los procedimientos y funciones, los desencadenadores
llamados tambin disparadores o trigger son un conjunto de instrucciones
SQL cuya diferencia es que se ejecutan solos y en forma automtica
cuando se modifica el contenido de una tabla o vista, es decir cuando
utilizamos INSERT, UPDATE O DELETE.
LA SINTAXIS
CREATE OR REPLACE TRIGGER Nombre
TIEMPO evento1 [ OR evento2 OR evento 3.] -- instruccin
ON TABLA
EJEMPLO02
Las siguientes instrucciones crean un desencadenador llamado Tr_actualizaProveedor que
muestra una sola vez el mensaje: registro actualizado cada vez que se utiliza la instruccin
update en la tabla proveedor sin importar la cantidad de registros que se actualizan.
Ejercicio 03: actualice el campo telefono de la tabla proveedor. Verifique los resultados.
Variable old
El contenido de esta variable depende de la instruccin que genera o ejecuta el
desencadenador.
Delete
si la instruccin que genera el desencadendor es delete, la variable old almacena los datos
del registro eliminado. De esta manera podemos saber y leer los datos del registro
eliminado.
Update
si la instruccin que genera el desencadendor es update, la variable old almacena los datos
del registro actualizado, pero, con los datos anteriores, es decir, son los datos antes de
actualizarse. De esta manera podemos saber qu registro se actualiz y qu datos o campos
se actualizaron.
Insert
La variable old no almacena ningn registro cuando la instruccin que genera el
desencadenador es insert, es decir , no se utiliza.
Variable New
El contenido de esta variable depende de la instruccin que genera o ejecuta el
desencadenador.
Delete
La variable new no almacena ningn registro cuando la instruccin que genera el
desencadenador es delete, es decir, no se utiliza.
Update
si la instruccin que genera el desencadendor es update, la variable new almacena los datos
del registro actualizado con los nuevos datos. De esta manera podemos saber qu registro
se actualiz y qu datos o campos se actualizaron.
Insert
si la instruccin que genera el desencadendor es insert, la variable new almacena el nuevo
registro agregado a la tabla. De esta manera podemos saber y leer los datos del nuevo
registro.
Para referirse a un campo de las variables old o new se utiliza la siguiente sintaxis:
:nombre_de_la variable.nombre_campo
Nota : para poder utilizar las variables old y new dentro de un desencadenador debemos
indicar que las instrucciones se deben ejecutar registro por registro.
EJEMPLO03
Se crea un desencadenador llamado Tr_actualizaEmpleado_AntesYDespues, cuyas
instrucciones se ejecutarn registro por registro y antes de actualizarse algn registro de la
tabla empleados. Este desencadenador muestra los datos de los registros antes y despues de
actualizarse.
Definicin de variables
BEGIN
Instrucciones del desencadenador
END;
Condicin
Es aquella que se debe cumplir para que se pueda ejecutar las instrucciones del
desencadenador
EJEMPLO03
El siguiente ejemplo utiliza la tabla empleados y crea un desencadenador con una
condicin general.
Las siguientes instrucciones de ejemplo crean al desencadenador cuyas
instrucciones se ejecutan cuando se actualiza un sueldo bsico mayor a 800 soles
Ejemplo:
Alter Trigger Tr_actualizaProveedor Disable
El comando alter table permite desactivar o activar todos los desencadenadores
creados para una tabla.
Lab. Administracin de Base de Datos
(IS-443)
ELIMINAR UN DESENCADENADOR
La instruccion Drop Trigger permite eleiminar fisicamente un desencadenador de la
base de datos oracle.
Sisntaxis:
Drop trigger nombre
Ejercicio:
1. Crear un desencadenante llamado tr_actualiza_stock, que permita actualizar el
stock de un producto cada vez que se registra una venta.
2. Crear un desencadenante, que permita actualizar el stock cada vez que se elimina
un pedido de una venta realizada.mostrar el stock antes y despues.
3. Crear un desencadenante, que permita actualizar el stock de un producto cada vez
que se modifica la cantidad de una venta realizada.
4. Crear 2 desencadenantes que crea conveniente