¿Qué son los triggers de MySQL y cómo se usan?
El trigger MySQL es un objeto de la base de datos que está asociado con una tabla. Se activará cuando una acción definida se ejecute en la tabla. El trigger puede usarse para ejecutar una de las siguientes sentencias MySQL en la tabla: INSERT, UPDATE y DELETE. Se puede invocar antes o después del evento.
Puedes encontrar una explicación detallada sobre la función de los triggers y su sintaxis en este artículo.
El principal requisito para ejecutar los Triggers MySQL es tener privilegios MySQL SUPERUSER.
En los servidores ofrecidos por SiteGround, tales privilegios se pueden aplicar solamente en las soluciones de hosting Cloud. Conceder privilegios SUPERUSER a un usuario alojado en un servidor compartido no es posible debido a la configuración del servidor.
Aquí tienes un ejemplo de un trigger MySQL:
- Primero, crearemos la tabla para la que se establecerá el trigger mediante SSH:
mysql> CREATE TABLE people (age INT, name varchar(150));
- A continuación definiremos el trigger. Se ejecutará antes de cada sentencia INSERT para la tabla people:
mysql> delimiter //
mysql> CREATE TRIGGER agecheck BEFORE INSERT ON people FOR EACH ROW IF NEW.age < 0
THEN SET NEW.age = 0; END IF;//
Query OK, 0 rows affected (0.00 sec) mysql> delimiter ;
- Insertaremos dos registros para comprobar la funcionalidad del trigger.
mysql> INSERT INTO people VALUES (-20, ‘Sid’), (30, ‘Josh’);
Query OK, 2 rows affected (0.00 sec)
Records: 2 Duplicates: 0 Warnings: 0
- Para terminar, comprobaremos el resultado.
mysql> SELECT * FROM people;
+——-+——-+
| age | name |
+——-+——-+
| 0 | Sid |
| 30 | Josh |
+——-+——-+
2 rows in set (0.00 sec)