¿Que son los triggers?

Se les llama triggers o disparadores, son eventos que se ejecutan cuando se cumplen condiciones determinadas, al hacer un insert, update o delete en una tabla de una BBDD. Esto nos permite realizar acciones cuando se realiza una inserción, modificación o eliminación de un registro. Son parecidos a los procedimientos almacenados pero en este caso no se tienen que llamar como los stored procedures, sino que como hemos dicho se ejecutan automáticamente al cumplirse la condición.

Los triggers pueden ser extremadamente útiles para llevar a cabo las siguientes casos:

  • Cuando los datos de una tabla son generados desde otro tipo de procesos y es necesario que se controlen los valores, para evitar que algunos campos tomen valores concretos.
  • Para duplicar los contenidos de una tabla automaticamente y en tiempo real.
  • Para implementar restricciones sobre valores que pueden tomar ciertos campos de la tabla.
  • Incrementar automáticamente los valores de un campo.
  • Para controlar las modificaciones de los valores de los campos.
  • Para realizar actualizaciones de una tabla en cascada.
  • Para modificar campos o registros en una tabla que un usuario no puede modificar directamente.

A continuación vamos a ver un par de ejemplos de triggers que se pueden ejecutar en tablas para realizar cualquiera de las siguientes operaciones.

En el ejemplo número 1 el trigger que hace un pedido en la tabla pedidos cuando  en el almacen se modifica un pedido y este valor es inferior al de un valor dado:

BEFORE UPDATE ON tabla_almacen

FOR ALL records IF :NEW.producto < 100 THEN INSERT INTO tabla_pedidos(producto) VALUES (‘1000′);

END IF;

SELECT DBO.POLVE.TEST

END

En el segundo ejemplo, si insertamos o actualizamos el registro de un empleado de manera que el salario sea superior a 5000 euros, el trigger actualizará el salario a 5000 euros idependientemente del valor que hayamos insertado o introducido al modificar el registro.

CREATE TRIGGER tr1_empleados

BEFORE INSERT OR UPDATE OF salario
ON empleados
FOR EACH ROW
WHEN (:new.salario > 5000);
BEGIN
UPDATE empleados
SET salario = 5000
WHERE empleado_id = :new.empleado_id;
END;

Con estos ejemplos ya nos podemos hacer una pequeña idea de que son los trigger y de cuáles son sus utilidades y virtudes de cara a incrementar su uso en los desarrollos que impliquen BBDD.

Un comentario en “¿Que son los triggers?”

Mexicano dice:

uff lo que requeria!!! suerte hermano felicidades

Gracias

Dejar un comentario

*