Logo Studenta

Disparadores

¡Este material tiene más páginas!

Vista previa del material en texto

Cómo crear y utilizar Triggers
Disparadores
S
¿Qué es un Trigger?
0001
Los triggers o disparadores son usa serie de reglas predefinidas que están asociadas a una tabla. Estas reglas permiten la ejecución de una serie de instrucciones cuando se producen ciertos eventos como pueden ser la inserción de un nuevo registro, la actualización o el borrado de los datos de una tabla.
Para poder crear un trigger es necesario que tengas permisos INSERT y DELETE sobre la base de datos.
Cómo crear un Trigger
A
Restricciones:
El disparador no puede referirse a tablas directamente por su nombre, incluyendo la misma tabla a la que está asociado. Sin embargo, se pueden emplear las palabras clave OLD y NEW. OLD se refiere a un registro existente que va a borrarse o que va a actualizarse antes de que esto ocurra. NEW se refiere a un registro nuevo que se insertará o a un registro modificado luego de que ocurre la modificación.
Cómo crear un Trigger
A
Restricciones:
El disparador no puede invocar procedimientos almacenados utilizando la sentencia CALL. (Esto significa, por ejemplo, que no se puede utilizar un procedimiento almacenado para eludir la prohibición de referirse a tablas por su nombre).
Cómo crear un Trigger
A
Restricciones:
El disparador no puede utilizar sentencias que inicien o finalicen una transacción, tal como START TRANSACTION, COMMIT, o ROLLBACK.
Cómo crear un Trigger
A
Sintaxis:
El disparador queda asociado a la tabla nombre_tabla. Esta debe ser una tabla permanente, no puede ser una tabla TEMPORARY ni una vista.
momento_disp es el momento en que el disparador entra en acción. Puede ser BEFORE (antes) o AFTER (después), para indicar que el disparador se ejecute antes o después que la sentencia que lo activa.
Cómo crear un Trigger
A
Sintaxis:
evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT, UPDATE, o DELETE. Por ejemplo, un disparador BEFORE para sentencias INSERT podría utilizarse para validar los valores a insertar.
Cómo crear un Trigger
A
Sintaxis:
No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y sentencia. Por ejemplo, no se pueden tener dos disparadores BEFORE UPDATE. Pero sí es posible tener los disparadores BEFORE UPDATE y BEFORE INSERT o BEFORE UPDATE y AFTER UPDATE.
Cómo crear un Trigger
A
Sintaxis:
sentencia_disp es la sentencia que se ejecuta cuando se activa el disparador. Si se desean ejecutar múltiples sentencias, deben colocarse entre BEGIN ... END, el constructor de sentencias compuestas. Esto además posibilita emplear las mismas sentencias permitidas en rutinas almacenadas. 
Cómo crear un Trigger
A
Vamos a crear un trigger que actualice automáticamente el precio de los productos de la tabla creada en el apartado anterior cada vez que se actualice su coste. Le llamaremos actualizarPrecioProducto.
El trigger comprobará si el coste del producto ha cambiado y, en caso afirmativo, establecerá el precio del producto con el doble del valor de su coste. 
Cómo crear un Trigger
A
Cómo crear un Trigger
A
Se crea un trigger que se ejecuta antes de la actualización del registro, algo que se indica con la sentencia «BEFORE UPDATE ON«. Luego se comprueba si el coste antiguo del producto difiere del nuevo y, si es así, se actualiza el precio con el doble del valor de su nuevo coste.
Cómo crear un Trigger
A
La palabra clave BEFORE indica el momento de acción del disparador. En este caso, el disparador debería activarse antes de que cada registro se inserte en la tabla. La otra palabra clave posible aqui es AFTER.
Cómo crear un Trigger
A
La palabra clave UPDATE indica el evento que activará al disparador. En el ejemplo, la sentencia UPDATE causará la activación. También pueden crearse disparadores para sentencias DELETE e INSERT.
Las sentencia siguiente, FOR EACH ROW, define lo que se ejecutará cada vez que el disparador se active, lo cual ocurre una vez por cada fila afectada por la sentencia activadora.
Cómo utilizar un trigger
B
Una vez creado el trigger, no debe hacer absolutamente nada para llamarlo, puesto que el motor de la base de datos lo invocará automáticamente cada vez que se actualice un registro de la tabla de productos.
Sin embargo, se podrá comprobar el resultado del trigger actualizando un registro con una sentencia UPDATE.
Cómo utilizar un trigger
B
Cuando se ejecuta el UPDATE, se activa también el trigger, que actualizará el precio con el doble de su valor.
Cómo borrar un trigger
C
Para eliminar una trigger, se utiliza la sentencia DROP TRIGGER Por ejemplo:
GRACIAS
Bases de Datos II
Universidad de Córdoba 
CREDITS: This presentation template was created by Slidesgo, including icons by Flaticon, infographics & images by Freepik

Más contenidos de este tema