Las bases de datos relacionales están diseñadas mediante lenguaje SQL, como es el caso de MySQL o PostgreSQL.En ellas, determinadas funciones se realizan a través de un trigger o disparador. En este artículo vemos más a fondo en qué consisten los trigger, para qué sirven y algunos ejemplos ilustrativos.
¿Qué es un Trigger?
Un trigger o disparador es un script que se usa en lenguaje de programación SQL, en especial en bases de datos como MySQL o PostgreSQL.
Consiste en una serie de reglas predefinidas que se asocian a una tabla. Estas reglas se aplican a la base de datos cuando se realizan determinadas operaciones en la tabla, por ejemplo, al añadir, actualizar o eliminar registros.
Dicho de otra manera, el trigger desencadena determinadas acciones de forma automática en las tablas de la base de datos cuando se insertan, modifican y se añaden nuevos datos.
Estos disparadores se llevan usando en MySQL desde la versión 5.0.2., mientras que PostgreSQL ya los incluyó en el año 1997.
¿Para qué sirve?
La principal función de los trigger es contribuir a mejorar la gestión de la base de datos. Gracias a ellos muchas operaciones se pueden realizar de forma automática, sin necesidad de intervención humana, lo que permite ahorrar mucho tiempo.
Otra de sus funciones es aumentar la seguridad e integridad de la información. Esto lo consiguen gracias a la programación de restricciones o requerimientos de verificación que permiten minimizar los errores y sincronizar la información.
Por otra parte, entre sus principales ventajas es que todas estas funciones se pueden realizar desde la propia base de datos, es decir, no es necesario recurrir a lenguajes externos de programación.
¿Cuándo se puede usar un Trigger?
Los trigger se puede ejecutar cuando el usuario realizar alguna acción relacionada con añadir, actualizar o eliminar información de una tabla. Es decir, al usar los comandos INSERT, UPDATE o DELETE.
Por tanto, para poder usar un trigger es necesario que el usuario posea permisos INSERT y DELETE e dicha base de datos.
Estructura de un Trigger
La estructura y modo de funcionamiento de un trigger se puede resumir en tres pasos:
- Se produce una llamada de activación al código que se ha de ejecutar.
- Aplica las restricciones necesarias para poder realizar la acción, por ejemplo, una determinada condición o una nulidad.
- Una vez verificadas las restricciones, se ejecuta la acción, en base a las instrucciones recibidas en el primer punto.
Tipos de trigger
Existen diferentes tipos de disparadores, en función de las ejecuciones que realizan.
- Disparadores de fila: también llamados row triggers, son aquellos cuya ejecución se realiza a través de llamadas desde una tabla asociada al trigger.
- Disparadores de secuencia. también llamados statement triggers, son aquellos que se ejecutan solo una vez, independientemente de la cantidad de veces que se cumplan las condiciones para su ejecución.
¿Cuándo ejecuta su acción un Trigger?
Los triggers pueden ejecutar su acción en diferentes momentos.
- Antes de ejecutar la sentencia (before statement)
- Después de ejecutar la sentencia y de comprobar las restricciones y condiciones aplicables (after statement)
- Antes de modificar la fila de la tabla afectada por la sentencia del trigger, y de comprobar las restricciones y condiciones de ejecución (before row)
- Después de modificar la fila de la tabla afectada por la sentencia del trigger, y de comprobar las restricciones y condiciones de ejecución (after row)
Características y posibles efectos
Por una parte, aunque los triggers podrían almacenar los datos afectados por las sentencias en tablas temporales, en principio no aceptan ningún tipo de argumento o parámetro.
Por otra, no están habilitados para la ejecución de comandos ROLLBACK o COMMIT, ya que estas forman parte de la sentencia SQL del trigger.
Respecto a sus posibles efectos, hay que tener en cuenta que si se han programado de forma incorrecta podrían ocasionar mutaciones en las tablas.
Ejemplos de Trigger
Imagina que quieras duplicar una tabla, en la que se añada de forma automática la información que se vaya insertando en la tabla original. Bien, pues para eso tan solo tienes que programar un trigger para que se ejecute cada vez que insertas un dato en la primera tabla, de forma que dicho dato se añadirá de forma automática en la segunda.
Sin embargo, esto es solo un ejemplo de los muchos usos que puede tener un trigger. A efectos prácticos lo podrías programar para casos como los siguientes:
- Crear una copia automatizada que registre cada cliente que entra en un eCommerce.
- Contabilizar estadísticas sobre accesos a una base de datos y las acciones que se han llevado a cabo en ellas.
- Duplicar tablas con información sincronizada.
- Programar la base de datos para que se realice un pedido de forma automática cuando el stock ha legado a un mínimo determinado de unidades.
- Bloquear la inserción de datos incorrectos o de transacciones inválidas.
- Crear alertas que avisen de cuando se ha modificado algún dato en una tabla.
Y mucho más. Los triggers tienen numerosas posibilidades, de hecho tienen tantas que casi se podría automatizar por completo el funcionamiento de una base de datos.
Trigger marketing
Cabe decir que el concepto de trigger no es exclusivo del entorno de la gestión de bases de datos. Por ejemplo, también se pueden utilizar en el ámbito del marketing, especialmente para email marketing.
El trigger marketing o trigger mail consiste en programar el envío de notificaciones o mensajes personalizados a los clientes. Por ejemplo, puedes programar el envío de mensajes de felicitación para cada cliente cuando sea su fecha de cumpleaños. O programar el envío de ofertas relacionadas cuando el cliente compra un determinado producto.
El concepto en ambos casos es el mismo: desencadenar una acción cuando se dan las condiciones para su ejecución, ya sea añadir, modificar o eliminar datos o, en el caso del marketing, que el cliente haya realizado determinada acción en la tienda online.
En definitiva, los trigger funcionan como scripts que permiten automatizar tareas y, de esta forma, agilizar la gestión de las bases de datos, aumentando además la seguridad y la integridad de la información y reduciendo la entrada de datos incorrectos.
Escribe aquí tu comentario