Un "trigger" (disparador o desencadenador) es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista). Se definen para una tabla (o vista) específica.
Se crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas.
Presentación de Redes de alcantarillado y agua potable
San triggers
1. BASE DE
DATOS IIIng. Marco Aurelio Porro Chulli
Ingeniería de Sistemas y
Telemática
INTEGRANTES:
Sandrita Rafael Estela..
Rosaliny Rivera Salazar.
TRIGGERS-ACTIVADORES
2. TRIGGERS-ACTIVADORES
(disparador o desencadenador) Es una clase especial
de procedimiento almacenado que se ejecuta
automáticamente cuando se produce un evento en el
servidor de bases de datos.
Son objetos que se asocian con tablas y se almacenan
en la base de datos. Su nombre se deriva por el
comportamiento que presentan en su funcionamiento,
ya que se ejecutan cuando sucede algún evento sobre
las tablas a las que se encuentra asociado.
Los eventos que hacen que se ejecute un trigger son
las operaciones de inserción (INSERT), borrado
(DELETE) o actualización (UPDATE), ya que modifican
los datos de una tabla.
3. CREATE
[DEFINER={usuario|CURRENT_USER}
]
TRIGGER nombre_del_trigger
{BEFORE|AFTER}
{UPDATE|INSERT|DELETE}
ON nombre_de_la_tabla
FOR EACH ROW
<BLOQUE_DE_INSTRUCIONES>
VALOR DESCRIPCIÓN
INSERT, DELETE, UPDATE Define qué tipo de orden DML provoca la
activación del disparador.
BEFORE , AFTER
Define si el disparador se activa antes o
después de que se ejecute la orden.
FOR EACH ROW
Los disparadores con nivel de fila se
activan una vez por cada fila afectada
por la orden que provocó el disparo. Los
disparadores con nivel de orden se
activan sólo una vez, antes o después
de la orden. Los disparadores con nivel
de fila se identifican por la cláusula FOR
EACH ROW en la definición del
disparador.
4. En este ejemplo inserto un nuevo empleado y lo que hago
es mostrar el empleado insertado desde la tabla inserted.
CREATE TRIGGER
INSERTAR_EMP
ON EMP
FOR INSERT
AS
SELECT * FROM INSERTED
Una vez creado el Trigger realizamos una inserción de
datos y obtenemos los siguientes resultados.
INSERT INTO EMP(Emp_No, Apellido, Oficio, Dir,
Fecha_Alt, Salario, Comision, Dept_No)
VALUES(7455,'GANOZA','EMPLEADO',7902,'29/05/2015'
,15520,0,20)
5. Para modificar no existe ninguna tabla update, lo que hace en realidad es insertar en la tabla delete
el registro antes de ser modificado y en la tabla inserted el registro ya modificado, porque entiende
que se ha borrado un registro y se ha insertado otro.
Con lo cual para crear un trigger que se active con un update, trabajaremos con las tablas del
sistema delete e insert.
CREATE TRIGGER [MODIFICAR]
ON DEPT
FOR UPDATE
AS
UPDATE EMP
SET
DEPT_NO = INSERTED.DEPT_NO
FROM EMP,DELETED,INSERTED
WHERE
EMP.DEPT_NO = DELETED.DEPT_NO
si actualizo el código del departamento 50 a 80, lo que hace el trigger es buscar en la tabla Emp
todos los departamentos con código 50 y actualizarlos a 80.
6. Vamos a ver un ejemplo de creación de un trigger para cuando
borremos un departamento se actualice la tabla empleados borrando
todos aquellos cuyo departamento sea el borrado.
En este caso como queremos borrar, obtendremos la información de
la tabla Deleted, que es una tabla de sistema donde se almacenan
todos los datos borrados de todas las tablas. Con lo que la
instrucción quedaría así.
CREATE TRIGGER [BORRADOR]
ON DEPT
FOR DELETE
AS
DELETE FROM EMP
FROM EMP, DELETED
WHERE
EMP.DEPT_NO = DELETED.DEPT_NO
Al ejecutar la eliminación de un departamento llamará al Trigger el
cual se ejecutará inmediatamente.
DELETE FROM DEPT WHERE DEPT_NO = 70
7. Un activador o triigger o disparador o desencadenador define un
conjunto de acciones que se ejecutan en respuesta a una
operación de inserción, actualización o supresión en una tabla
determinada, los activadores pueden utilizarse, junto con las
restricciones de referencia y las restricciones de comprobación,
para imponer las reglas de integridad de los datos. Los activadores
también pueden utilizarse para provocar actualizaciones en otras
tablas, para transformar o generar valores automáticamente en las
filas insertadas o actualizadas, o para invocar funciones que
realicen tareas como la de emitir alertas.
Los eventos que hacen que se ejecute un trigger son las
operaciones de inserción (INSERT), borrado (DELETE) o
actualización (UPDATE), ya que modifican los datos de una tabla.
8. Los triggers son disparadores asociados con las
tablas, nos sirven para muchas funciones a la
hora de realizar una base de datos, tales como
modificar un valor en las tablas dependiendo de
algún evento, de ese modo podremos darnos
cuenta fácilmente si nuestra base de datos fue
modificada o no.
Los triggers son importantes utilizar en una base
de datos para que nos ayuden a calcular ya sea
el stock de un producto, etc. También para que
nos ayude a hacer restricciones de datos entre
otros.