Saltar al contenido principal
eLearner.app
Módulo 12 · Lección 4 de 448/57 en el curso~12 min
Lecciones del módulo (4/4)

Triggers prácticos y auditoría

Ahora que hemos aprendido cómo forjar balas inteligentes (las funciones de disparo), necesitamos montarlas en armas preparadas reales esperando un evento: ¡aquí vienen los disparadores reales! Un disparador adjunta formalmente una función creada previamente y le indica que active "ANTES" o "DESPUÉS" de un evento CRUD particular en una tabla determinada.

Hay muchas opciones; por ejemplo, FOR EACH ROW lo activa una vez por fila afectada, por lo que si una consulta masiva es una ACTUALIZACIÓN GLOBAL de más de 5 millones de filas, desencadenaría 5 millones de microejecuciones. ¡Tenga cuidado con eso!

SQL
CREATE TRIGGER sync_inventory_trigger
-- Event options
AFTER INSERT OR UPDATE ON order_items
-- Modus operandi (singular or global macro-block FOR EACH STATEMENT)
FOR EACH ROW
-- Run the forged action
EXECUTE FUNCTION update_stock();

El activador es invisible para JavaScript y mantendrá de forma autónoma el stock perfectamente consistente basándose estrictamente en las actualizaciones enviadas de forma segura al motor.

Automatización Updated_At

Existe un problema empresarial constante en el que nos olvidamos de pasar { updated_at: new Date() } en nuestros modelos de actualización JS. Una función de activación set_updated_at combinada con un activador BEFORE UPDATE elimina esta molestia, actualizando silenciosamente cada cambio de registro de forma autopoiética.

Pruébalo tú mismo

Ejercicio#sql.m12.l4.e1
Intentos: 0Cargando...

Cree un activador llamado 'trg_force_uppercase'. Adjuntelo en la fase 'ANTES DE INSERTAR' en la tabla 'clientes'. Force el cálculo fila por fila 'PARA CADA FILA' e invoque la ejecución de la función 'force_uppercase_name()'. Nota: también vuelva a crear la UDF 'force_uppercase_name' (dado que el entorno está aislado) en la parte superior del código, luego agregue el activador declaración.

Cargando editor...
Mostrar pista

Sintaxis de texto: primero cree la función, luego agregue CREAR DISPARADOR trg_force_uppercase ANTES DE INSERTAR EN clientes PARA CADA FILA EJECUTAR FUNCIÓN force_uppercase_name();

Solución disponible después de 3 intentos

Ejercicio#sql.m12.l4.e2
Intentos: 0Cargando...

¡Mata el sensor! A veces queremos enviar archivos semilla sin procesar o cambios nativos temporales, evitando auditorías ruidosas. Dejar caer un disparador es increíblemente sencillo (no elimina la función orgánica, solo elimina el enlace del sensor). Utilice la palabra clave 'DROP TRIGGER', especificando el nombre y el archivo adjunto global.

Cargando editor...
Mostrar pista

Recuerde especificar de dónde. DROP TRIGGER trg_force_uppercase EN clientes;

Solución disponible después de 3 intentos