Triggers en MySQL
16:00 H (CET)| Temas: How to · MYSQL
La verdad es que tenía pendiente hacer un pequeño manual de triggers (disparadores) en MySQL después de haber hablado de las novedades de MySQL 5, pero siempre falta tiempo y por eso aprovecho a comentar el artículo que he encontrado.
Los triggers son algo muy útil sobre todo si queremos actualizar datos de forma automática. Imaginemos una tabla con los datos de un usuario, que pueden ser modificados desde distintas partes de nuestra aplicación, y es necesario que cuando se actualiza algún dato del usuario, se tenga que actualizar los datos de otra tabla. Podríamos actualizar los datos de la segunda tabla mediante código en cada uno de los casos en los que se actualiza la tabla del usuario en la aplicación, o bien podríamos crearnos un trigger que cuando se actualice la tabla de usuario (aunque sea "a mano") se actualice directamente los datos de la otra tabla.
Un ejemplo para la creación de un trigger sería el siguiente:
CREATE TRIGGER disparador
AFTER INSERT ON usuarios
FOR EACH ROW
UPDATE tabla2
SET campo = valor;
Más información
Ease database management and automate functions with triggers in MySQL
Vía / dzone
Relacionados
Feedback (10) » Formulario
1. Iñigo ~ Lunes, 04 Sep 2006 | 09:29H:
En la Universidad la base de datos de expedientes académicos tenía definidos triggers para comprobar la integridad de los datos.
Junto a cada nota había un código de seguridad, y un código de comprobación generados por la aplicación de gestión académica.
Al leer o modificar alguna entrada saltaba el trigger de comprobación para evitar trabajar con una BBDD corrupta o modificada sin autorización.
Nuestro DBA estaba en todo :-).
3. lubin ramos ~ Martes, 19 Jun 2007 | 00:50H:
Amigo estoy empesando a conocer sobre los triggers y quisiera por favor que me enviaras paso a paso desde como hacer una base de datos hasta los trigger con update, delete,insert
4. lulu ~ Miércoles, 01 Ago 2007 | 17:20H:
pongan en un ejemplo de triggers pero explicito sale porfa, gracias
5. Manu ~ Viernes, 26 Oct 2007 | 17:29H:
Me gustaria saber si se puede actualizar algun dato de la misma tabla en la se ejecuta el trigger?
6. Luciano Medina ~ Lunes, 14 Ene 2008 | 18:22H:
Quisiera saber como hago para ver todos los triggers que tengo en una base de datos.
Asi como "show procedure status" para los procedimientos, si existe una para los triggers.
Gracias.
8. Aquim ~ Martes, 22 Abr 2008 | 20:15H:
Tengo muy claro lo que es un trigger, pero este ejemplo que han puesto ahi no dice nada...
Es necesario que los ejemplos lo hagan en base a una realidad, para que de esta manera pueda servirla a quienes esperan optener ayuda en estas paginas, pues uno se pasa horas buscando en la Internet y se da cuenta que casi todo es lo mismo y una paja de ejemplo.
9. Andres ~ Sábado, 24 May 2008 | 21:16H:
Lo que yo necesito es un trigger para que cuando se actualice un registro en una base de datos, automaticamente se ejecute un PHP (o un script en cualquier otro lenguage) que mediante XML-RPC (Web Services) envie los datos modificados a un programa remoto.
No he visto en ninguna parte documentacion de como invocar scripts desde los triggers, parece que los triggers estan limitados a acciones dentro de la misma base de datos.
¿ Es asi ? Me puede si no alguien orientar como hacerlo ?
10. daniloski ~ Domingo, 20 Jul 2008 | 15:53H:
CREATE TRIGGER `ventas_disparo` AFTER UPDATE ON `ventas`
FOR EACH ROW
BEGIN
UPDATE salidas_detalle
SET salidas_detalle.fec_vent = NEW.fec_vent
where salidas_detalle.fam_prod = new.fam_prod
and salidas_detalle.serie = new.serie;
END;
// new.fec_vent corresponde a tabla ventas
// new.fec_vent other table ventas

