Trigger, disparador o gatillo en MariaDB (Curso de MariaDB desde cero [24])
Ahora analizaremos Trigger, disparador o gatillo en MariaDB Esta función de MySQL y se incorporó a partir de la versión 5.0.2. Un disparador es una función que como su nombre lo dice se dispara cuando hay un evento en un cierto momento (before [antes],after [después]). Los disparadores se pueden usar para insertar, actualizar o borrar registros de otras tablas o incluso de otras bases de datos cuando se realizan cambios en la tabla que estamos trabajando. Estos son ejemplos del uso de disparadores:
Creación de registros (logs) de acciones.
Actualización de fechas en caso de alguna modificación.
Crear relaciones en caso de tener alguna restricción a esa función para nuestro usuario.
Sintaxis de un gatillo:
delimiter //
create trigger nombre_gatillo momento evento on tabla_que_resibe_evento
for each row
begin
insert into cualquier_tabla(campo) value (‘Valor’);
end//
delimiter ;
Codigo:
CREATE TABLE acciones
(id
INT NOT NULL AUTO_INCREMENT,accion
VARCHAR(45) NULL,fecha
DATETIME NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (id
));
drop trigger registra_acciones;
delimiter //
create trigger registra_acciones after update on alumnos
for each row
begin
insert into acciones (acciones) values (concat(‘Se actualizo un alumno de nombre:’,new.nombre,’ con calificacion:’,new.nota,’ nombre viejo:’,old.nombre,’ calificacion vieja:’,old.nota));
end//
delimiter ;
Para entender mejor los trigger o gatillos vamos a hacer el siguiente ejercicio:
- Crear la tabla acciones que tenga los campos id,accion,fecha.
- Crear el gatillo llamado registra_acciones que se mantendrá a la espera que se realice un cambio en la tabla alumnos para guardar los cambios en la tabla acciones.
🎦 [CURSO] MYSQL DE 0 A 100🐬: https://www.youtube.com/playlist?list=PLCTD_CpMeEKQmH9cRKWWHahygZFtIdwYG
🎦 [CURSO] PhpMyAdmin En español 🇪🇸: https://www.youtube.com/playlist?list=PLCTD_CpMeEKRDDCpQho7sg1iNYQpOy2G4
🔗 Facebook: https://facebook.com/ProgramadorNovatoOficial
🔗 Twitter: https://twitter.com/programadornova
🔗 Linkedin: https://www.linkedin.com/in/programadornovato/
🔗 Instagram: https://www.instagram.com/programadornovato/
🔗 Pagina oficial: https://www.programadornovato.com
🔗 Gracias por apoyar este canal: https://www.patreon.com/programadornovato
🎦 Canal de youtube: https://www.youtube.com/c/programadornovato
<<Anterior tutorial Siguiente tutorial >>