IOKELU
Nivel: Avanzado
💡 Prueba triggers:
Puedes ejecutar cualquier trigger en nuestra consola interactiva: Abrir consola SQL →

Triggers en SQL: automatización de eventos en la base de datos

Los triggers permiten ejecutar código automáticamente cuando ocurre un evento: INSERT, UPDATE o DELETE. Son esenciales para auditoría, validaciones y sincronización de datos.

1. ¿Qué es un trigger?

Un trigger es un bloque de código que se ejecuta automáticamente cuando ocurre un evento en una tabla.

2. Tipos de triggers

3. Trigger AFTER INSERT


CREATE TRIGGER log_insert
AFTER INSERT ON ventas
FOR EACH ROW
BEGIN
    INSERT INTO auditoria (accion, fecha)
    VALUES ('INSERT en ventas', NOW());
END;
    

4. Trigger AFTER UPDATE


CREATE TRIGGER log_update
AFTER UPDATE ON productos
FOR EACH ROW
BEGIN
    INSERT INTO auditoria (accion, fecha)
    VALUES ('UPDATE en productos', NOW());
END;
    

5. Trigger AFTER DELETE


CREATE TRIGGER log_delete
AFTER DELETE ON usuarios
FOR EACH ROW
BEGIN
    INSERT INTO auditoria (accion, fecha)
    VALUES ('DELETE en usuarios', NOW());
END;
    

6. Triggers BEFORE


CREATE TRIGGER validar_precio
BEFORE INSERT ON productos
FOR EACH ROW
BEGIN
    IF NEW.precio < 0 THEN
        SET NEW.precio = 0;
    END IF;
END;
    

7. Ejemplos prácticos


-- Auditoría completa
CREATE TRIGGER auditoria_ventas
AFTER INSERT OR UPDATE OR DELETE ON ventas
FOR EACH ROW
BEGIN
    INSERT INTO auditoria (tabla, fecha)
    VALUES ('ventas', NOW());
END;
    

-- Validación de stock
CREATE TRIGGER validar_stock
BEFORE UPDATE ON productos
FOR EACH ROW
BEGIN
    IF NEW.stock < 0 THEN
        SET NEW.stock = 0;
    END IF;
END;
    

8. Ejercicios para practicar

9. Mini‑proyecto: Sistema de auditoría automática


CREATE TRIGGER auditoria_general
AFTER INSERT OR UPDATE OR DELETE ON productos
FOR EACH ROW
BEGIN
    INSERT INTO auditoria (tabla, accion, fecha)
    VALUES ('productos', 'cambio', NOW());
END;
    

10. Errores comunes

11. Preguntas frecuentes

¿Los triggers afectan el rendimiento?

Sí, especialmente si son complejos.

¿Puedo tener múltiples triggers por evento?

Sí, pero no siempre es recomendable.


Siguiente guía

SQL Avanzado – Procedimientos almacenados →