Está en la página 1de 3

Qué es un TRIGGER

También es conocido como DISPARADOR, es un objeto que se asocia con las tablas y
se almacena 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 la que se encuentra asociado.
Los eventos que hacen que se ejecute un trigger son las siguientes operaciones de:
Inserción (INSERT)
Borrado (DELETE) o actualización (UPDATE)
La utilidad principal de un trigger es mejorar la gestión de la base de datos, ya que no
requieren que un usuario los ejecute.
Son empleados para implementar REGLAS DE NEGOCIO de una base de datos.
Y que son las reglas de negocio, es cualquier restricción, requerimiento, necesidad o
actividad especial que debe ser verificada al momento de intentar agregar, borrar o
actualizar información de una base de datos.
¿Como crear un TRIGGER SQL?

Primero declaramos un delimitador y usamos la sentencia CREATE:

CREATE TRIGGER trigger_histórico

Luego debemos indicar cuando debe ejecutarse el TRIGGER. Las indicaciones posibles


en este punto son AFTER o BEFORE para indicar si el disparador se ejecutará antes o
después de la orden lanzada por el usuario. Estas órdenes serán: INSERT, DELETE o
UPDATE. Por último, indicaremos sobre que tabla actuará.

CREATE trigger_historico

AFTER INSERT ON usuario

FOR EACH ROW

la primera línea luego de haber creado el trigger indica que la ejecución será tras una
inserción en la tabla usuario.

La segunda línea forma parte de la estructura de un TRIGGER e indica que se debe


aplicar a cada fila insertada.

Por último, mediante el comando BEGIN y END indicamos las líneas de código SQL


que ejecutará el TRIGGER:
CREATE trigger_historico

AFTER INSERT ON usuario

FOR EACH ROW

BEGIN

// líneas de código SQL que se ejecutarán

END

El OLD y el NEW

Para que nuestras líneas de código SQL puedan acceder a la información que interviene
en el TRIGGER, es decir, la información a la que afecta un UPDATE, INSERT o
DELETE, disponemos de dos variables especiales NEW y OLD.

NEW

NEW es la variable que almacena la nueva información que aporta la consulta a la base
de datos, es decir, cada una de las filas que intervienen en un INSERT O UPDATE.

OLD

OLD es la variable que almacena la información antigua relacionada con la consulta que
ejecuta el TRIGGER, esta información la componen las filas que van a ser borradas o
modificadas.

TRIGGER sirve para:

 Ejecutar un código SQL cuando ocurra un evento en concreto: INSERT,


UPDATE o DELETE
 Ayudar a mantener la integridad de la información
 Manipular la información de una consulta en concreto ANTES o DESPUES de
su ejecución

Cuando utilizamos TRIGGER's en nuestras bases de datos debemos tener en


cuenta varias cosas:

 Debemos tener mucho cuidado con que un TRIGGER no ejecute a otro y este a


su vez al anterior. Sería un bucle infinito de ejecución.
 Se puede tener varios disparadores que se ejecuten en el mismo evento y
momento sobre una misma tabla. La idea es separar código en pequeños
fragmentos para evitar un mantenimiento engorroso.
 Si vas a sobrescribir un TRIGGER utiliza el comando DROP TRIGGER IF
EXISTS nombre_trigger; en la siguiente línea al delimitador DELIMITER.
 OLD no es accesible en los registros de un INSERT.
 NEW no está disponible en los registros de un DELETE.

También podría gustarte