Close-up of a robotic arm interacting with a chess setup showcasing AI innovation.

Triggers en MySQL: 8 cosas que te volarán la cabeza 🤯

Tiempo de lectura: 5 minutos
Rate this post

En esta sección te quiero hablar sobre los Triggers en MySQL, una potente herramienta de bases de datos, que nos permiten realizar acciones al ejecutar algún evento

En este artículo aprenderemos sobre: como hacer triggers en mysql, como ver los triggers en mysql, como usar triggers en mysql, como crear triggers en mysql, como hacer un trigger en mysql phpmyadmin, que son los triggers en mysql, para que sirven los triggers en mysql. ¡Empecemos!

1. ¿Para qué sirven los triggers en MySQL?

Lo primero que tenemos que saber es que los triggers MySQL, es una herramienta que nos permite ejecutar sentencias o acciones en nuestra base de datos y que se detonan con base en otra acción, es decir, como su nombre lo indica, los triggers MySQL, son disparadores que se detonan al realizar una sentencia previa.

Si estamos desarrollando una aplicación utilizando PHP y MySQL, los triggers nos podrían ayudar a validar acciones de inicios de sesión o inserciones de usuarios, eliminación de registros, etc.

2. ¿Cómo usar triggers en MySQL?

Para poder iniciar a usar triggers MySQL, será necesario que ejecutemos 3 tipos de consultas, las cuales son: INSERT, UPDATE Y DELETE, es decir, cada vez que nosotros ejecutemos cualquiera de esas 3 consultas en una tabla de la base de datos y esté configurado el trigger MySQL, el motor de bases de datos disparará el evento que se ha configurado.

Cada evento que nosotros disparemos con los trigger MySQL, pueden contar con hasta 2 momentos: el momento antes de que se ejecute la sentencia (BEFORE) o el momento después que se ejecute la sentencia (AFTER), por lo que dependiendo del momento y sentencia podremos obtener un objeto new o un objeto old de los datos dentro de la tabla.

Para esquematizar un poco mejor los eventos y objetos de los trigger MySQL, te podré una tabla:

SENTENCIABEFOREAFTER
INSERTnew
UPDATEnewold
DELETEold

Como podemos observar en la tabla anterior, con base en el momento en el cual disparemos la sentencia dentro del trigger mysql tendremos un objeto disponible con el nuevo valor (new) o el valor anterior (old).

3. ¿Cómo hacer triggers en MySQL?

Para poder hacer trigger MySQL, necesitamos utilizar la sentencia CREATE TRIGGER a la cual le añadimos un nombre de trigger, el tiempo de acción y el evento que ejecutará dicho trigger, ejemplo:

CREATE TRIGGER logs_users BEFORE INSERT ON users
SQL

En esta parte de la sentencia, podemos empezar a describir algunas cosas importantes, lo primero que podemos observar, es que utilizamos la sentencia CREATE TRIGGER para hacer triggers en MySQL, dicho trigger MySQL, en este caso se llamará logs_users, su tiempo de acción será antes de ejecutar la sentencia INSERT de la tabla users.

4. ¿Cómo crear triggers en MySQL?

Desarrollando completo el trigger, podriamos obtener algo como esto:

CREATE TRIGGER logs_users BEFORE INSERT ON users
  FOR EACH ROW
  BEGIN
    INSERT INTO logs (description) VALUES ('Se ha creado un nuevo usuario')
  END;
SQL

Este trigger se ejecutará antes de insertar un usuario dentro de la tabla users, y nos muestra que se generará un nuevo registro dentro de la tabla logs sobre el campo descripción con el valor Se ha creado un nuevo usuario

Ahora, si lo que queremos es poder acceder a algún valor del nuevo usuario que se está insertando dentro de la tabla users, entonces, podemos hacer algo como esto:

CREATE TRIGGER logs_users BEFORE INSERT ON users
  FOR EACH ROW
  BEGIN
    INSERT INTO logs (description) VALUES (CONCAT('Se ha creado un nuevo usuario: ', NEW.name));
  END;
SQL

Como podemos observar en este trigger MySQL, además de insertar la descripción Se ha creado un nuevo usuario, también le estamos concatenando el nombre del nuevo registro, por lo que la descripción quedaría algo como Se ha creado un nuevo usuario: 8devmx

5. ¿Cómo eliminar los triggers en MySQL?

Para poder eliminar los triggers MySQL, podemos hacer uso de la sentencia DROP TRIGGER, en el cual debemos de especificar el nombre del trigger que estemos utilizando y de ser posible la tabla o schema al cual pertenece el trigger MySQL, ejemplo:

DROP TRIGGER users.logs_users
SQL

6. ¿Cómo ver los triggers en MySQL?

Si lo que queremos es ver cuales son los triggers que tenemos configurados dentro de una base de datos MySQL, para ello utilizaremos la sentencia SHOW TRIGGERS, ejecutando esta sentencia dentro de la consola, podremos ver todos los triggers MySQL configurados dentro de la base de datos:

SHOW TRIGGERS
SQL

Si queremos, podemos específicar el nombre de la base de datos a la cual le queremos consultar los triggers, esto mediante la sentencia from, por lo que quedaría de esta forma:

SHOW TRIGGERS FROM db_name;
SQL

En donde debemos de reemplazar db_name con el nombre de la base de datos que estamos ocupando.

Si queremos revisar los triggers que se encuentran configurados en una tabla específicamente o con algún valor, podemos utilizar un patrón y la sentencia like, ejemplo:

SHOW TRIGGERS LIKE '%categories%'
SQL

Con esto le indicamos que queremos consultar los triggers que contienen la palabra categories, incluyendo tablas.

Para mayor información podemos consultar la documentación oficial de MySQL desde su sitio: https://dev.mysql.com/doc/refman/9.0/en/triggers.html

7. ¿Cómo hacer un trigger en MySQL PHPMyAdmin?

Si deseamos utilizar algún cliente de base de datos como puede ser PHPMyAdmin, Navicat, SequelPro o cualquier otro, entonces, comunmente será más fácil utilizar la interfaz gráfica de dichos clientes, por ejemplo:

Al seleccionar una tabla de la base de datos que estemos usando dentro de PHPMyAdmin, la última opción del menú dice Triggers, por lo que pulsaremos le botón.

Triggers en MySQL

Dentro de esa pantalla, pulsaremos el botón Create new trigger que se encuentra del lado derecho de nuestra pantalla

Al pulsarlo, nos mostrará un formulario en donde definiremos los datos necesarios para la configuración del trigger, dichos datos incluyen: nombre del trigger, a qué tabla le configuraremos el trigger, en qué tiempo funcionará y cual es el evento que lo detonará, después de ello, tenemos la definición, en donde agregaremos las sentencias necesarias de lo que queremos hacer al ejecutarse el trigger.

También podemos agregar un definer, que definirá el usuario para tener un mayor contexto de seguridad de quién lo puede ejecutar, sin embargo, será opcional

Por lo que al definir y completar todos los campos de nuestro trigger, podría quedar algo como esto:

8. ¿Qué son los triggers en mysql?

Entonces, recapitulando un poco, los triggers MySQL son un objeto nombrado de la base de datos que está asociado a una tabla, y se activa cuando un evento en particular ocurre dentro de dicha tabla. Los triggers MySQL son definidos en las sentencias INSERT, UPDATE y DELETE y cuentan con un tiempo de acción asignado BEFORE o AFTER.

Si te ha gustado este artículo y te aporta valor te pido me sigas en mi:

🖥️ Youtube: https://www.youtube.com/@eightdev?sub_confirmation=1

🎵 Tik Tok: https://www.tiktok.com/@8devmx

✅ Facebook: https://www.facebook.com/8devmx/

📸 Instagram: https://www.instagram.com/8devmx/

También podría interesarte

Social Share Buttons and Icons powered by Ultimatelysocial
YouTube
YouTube
Instagram
Scroll al inicio