Técnicamente, un trigger es un objeto de una base de datos que está asociado a una tabla, y que será activado cuando la acción que tiene asociada tiene lugar.
El trigger se puede ejecutar cuando tiene lugar una acción INSERT, UPDATE o DELETE, siendo posible su ejecución tanto antes como después del evento.
Sintaxis
CREATE
[DEFINER = { user | CURRENT_USER }]
TRIGGER trigger_name
trigger_time trigger_event
ON tbl_name FOR EACH ROW
[trigger_order]
trigger_body
Explicación
hagamos un triger que al definir un precio de compra indique que el precio de venta es un 16% mas para incrementarle el IVA del producto.
DELIMITER $$
$$
CREATE TRIGGER actualizar_precio_productos
BEFORE UPDATE
ON productos FOR EACH row
BEGIN
IF NEW.preciocompra <> OLD.preciocompra
THEN
SET NEW.precio = NEW.preciocompra * 1.16;
END IF ;
END
$$
DELIMITER ;
Verificar que este funcionando el trigger
SELECT * FROM productos WHERE id = 6;
UPDATE productos SET preciocompra = 100 WHERE id = 6;
SELECT * FROM productos WHERE id = 6;
DROP TRIGGER nombre_del_trigger