¿Qué es un trigger en MySql?

Quisiera saber que es un trigger ya que he oídio hablar mucho de el pero no se bien que es.

1 respuesta

Respuesta
1
Voy a intentar explicarte que es un trigger, cuya traducción literal es DISPARADOR.
Un trigger es un trozo de código (programa) que se asigna a un archivo de Base de datos, el cual se ejecutará cuando se haga algo con el archivo, sea mediante un programa, sentencia SQL, etc.. Este programa es totalmente independiente del codigo/sql que maneje el archivo y es muy útil para montar una integridad de datos, aunque ralentiza un poco la gestión del archivo. El trigger se ejecutara según se haya asignado al archivo. El trigger se puede asignar por:
INSERT, el trigger se ejecutará cuando se inserte un registro en el archivo.
UPDATE, el trigger se ejecutara cuando se actualice un registro del archivo al que esta asignado.
DELETE, el trigger se ejecurara cuando se borre un registro del archivo.
El trigger permite se puede asignar por AFTER (ejecuta despues de gestionar el archivo al que esta asignado), BEFORE (Ejecuta antes de gestionar el archivo al que esta asignado).
El motor de BBDD (Sea cuan fuese), pone a disposición del trigger los datos anteriores y nuevos del archivo que se esta gestionando.
Ejemplo:
Imaginemos que deseamos que cada vez que se borre un registro de cliente queremos que compruebe si tiene pedidos. El borrado se puede producir mediante un ERP, el cual puede que controle esto, pero también podemos hacerlo mediante alguna herramienta de sistema (SQL por ejemplo) y estas no controlan nada. Por tanto Adjuntamos un programita (trigger) al archivo por DELETE / BEFORE. Esto hará que antes de borrar un registro de clientes, podemos comprobar si hay pedidos del mismo y rechazar el borrado en caso afirmativo. Este programita se disparará siempre que se intente borrar un registro mediante programa o cualquier herramienta del sistema que lo permita.
Cada sistema / motor de base de datos tiene un sistema de asignación de trigger, por lo que te aconsejaría revisar los manuales correspondientes a tu sistema. Mi especialidad en este campo es Iseries de IBM / AS/ 400 / I5.
Espero haberte ayudado, un saludo,
fcosapa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas