-Actividad 2-

MANEJO DE FECHAS EN MYSQL 

Guia manejo de fechas

Subconsultas:

Descargar el siguiente archivo para recordar el manejo de las subconsultas:

Consulta 

Que son trigguer?

Un trigger (o desencadenador) en MySQL es un tipo de procedimiento almacenado que se ejecuta automáticamente cuando ocurre un evento específico en una tabla, como insertar, actualizar o eliminar registros. Los triggers se utilizan para realizar acciones automáticas, como validar datos, mantener la integridad referencial, auditar cambios, o realizar acciones en cascada, entre otros.

Cual es la sintaxis general para crear un trigger ?

La sintaxis general para crear un trigger en MySQL es la siguiente:

CREATE TRIGGER nombre_trigger

{BEFORE | AFTER} {INSERT | UPDATE | DELETE} ON nombre_tabla

FOR EACH ROW

BEGIN

-- Cuerpo del trigger (acciones a realizar)

END;

delimiter // 

create trigger nombre after (insert, delete, update) on tabla for each row //recorre fila por fila (arreglos o matrices) 

begin

sentencia sql; 

end 

// 

delimiter ;//Separar el punto y como del delimiter


Donde:

  •  `nombre_trigger` es el nombre que se le da al trigger.
  • `BEFORE` o `AFTER` especifica cuándo se debe ejecutar el trigger, antes o después del evento.
  •  `INSERT`, `UPDATE` o `DELETE` especifica el evento que activa el trigger.
  •  `nombre_tabla` es la tabla en la que se define el trigger.
  •  `FOR EACH ROW` indica que el trigger se ejecutará una vez por cada fila afectada por el evento.
  •  El bloque `BEGIN...END` contiene las acciones que se deben realizar cuando se activa el trigger.

Aquí tienes un ejemplo sencillo de cómo crear un trigger en MySQL:

CREATE TRIGGER before_insert_cliente

BEFORE INSERT ON clientes

FOR EACH ROW

BEGIN

SET NEW.fecha_registro = NOW();

END;

Este trigger se activa antes de insertar un nuevo registro en la tabla `clientes` y establece la columna `fecha_registro` con la fecha y hora actual.

¿Para qué sirve?

La principal función de los trigger es contribuir a mejorar la gestión de la base de datos. Gracias a ellos muchas operaciones se pueden realizar de forma automática, sin necesidad de intervención humana, lo que permite ahorrar mucho tiempo.

Otra de sus funciones es aumentar la seguridad e integridad de la información. Esto lo consiguen gracias a la programación de restricciones o requerimientos de verificación que permiten minimizar los errores y sincronizar la información.

Por otra parte, entre sus principales ventajas es que todas estas funciones se pueden realizar desde la propia base de datos, es decir, no es necesario recurrir a lenguajes externos de programación.


Ventajas de los Triggers

  • Generar automáticamente algunos valores de columna derivados.
  • Aplicar la integridad referencial.
  • Registro de eventos y almacenamiento de información sobre el acceso a la tabla.
  • Auditoría.
  • Replicación sincrónica de tablas.
  • Imponer autorizaciones de seguridad.
  • Prevenir transacciones inválidas.


Comandos comunes

Para eliminar un trigger, puedes usar el comando: DROP TRIGGER nombre_del_trigger;

Para ver todos los triggers, puedes usar el comando: SHOW TRIGGERS;

Referencias 

Latam, A. (2023, 15 noviembre). Qué es y cómo usar un trigger en SQL. Alura. https://www.aluracursos.com/blog/que-es-y-como-trigger-en-sql

Tablado, F. (2020, 22 octubre). ¿Qué es un trigger en una base de datos? Ayuda Ley Protección Datos. https://ayudaleyprotecciondatos.es/bases-de-datos/trigger/


Documentación Triggers

Inicializamos la base de datos de Subconsultas que contiene las tablas articulo y detalle.

Creamos un trigger con el nombre de valorventa que al insertar un articulo realice el siguiente cálculo. Calcular el valorventa de la tabla detalle con un incremento del 23% del valorunitario de la tabla articulo

1.Que se desea consultar o modificar y de que tabla

Detalle.valorventa

2.Tablas involucradas

Articulo

Detalle

3.Condicion

articulo.codigo = detalle.codigo

4.comandos

Update

where

select

After 

5.Sintaxis de la sentencia sql

update detalle set valorventa = (select valorunitario + (valorunitario * 0.23) from articulo where articulo.codigo = detalle.codigo);

6.Trigger

Se observa el trigger con el comando SHOW TRIGGERS;

Agregamos un articulo para ver si el trigger funciona correctamente 

After


Creamos otro trigger  con el nombre de actualizar_existenciap que al insertar un detalle realice el sigueinte cálculo calcular las existencias segun la tabla detalle de cada articulo

1.Que se desea consultar o modificar y de que tabla

Articulo.existencia

2.Tablas involucradas

Articulo

Detalle

3.Condicion

detalle.codigo = articulo.codigo

4.comandos

Update

where

select

After

5.Sintaxis de la sentencia sql

updatearticulo set existencia = cantidad - (select sum(cantidad) from detalle where detalle.codigo = articulo.codigo);

6.Trigger


Agregamos otro articulo y observamos los cambios en las tablas 

Before

Se crea una nueva base de datos llamada PruebadeTrigger.

Creamos una tabla llamada productos

Insertamos algunos productos 

Crear un trigger que antes de insertar un producto calcule el valor de venta 

1.Que se desea consultar o modificar y de que tabla

Productos..valorventa

2.Tablas involucradas

Productos

3.Condicion

Ninguna

4.comandos

Before

Set

5.Sintaxis de la sentencia sql

set new.valorventa =new.costo+new.costo*new.porgana/100;

6.Trigger

Comprobamos que le trigger funcione correctamente agregando de nuevo el producto anterior 

crear un trigger que antes de actualizar un producto vuelva y calcule el valor de venta. 


Guardamos las bases de datos con los triggers

Archivo TXT con los comandos utilizados 



Parte 2 De Triggers

Como crear un trigger con varias instrucciones

Creamos una tabla para guardar los artículos insertados 

Creamos Un Trigger para calcular el Valor de la venta cuando se inserta un articulo nuevo.

current_user() => Comando para ver el usuario que esta logueado

Creamos el triggert con la siguiente estructura 

Probamos el Trigger insertando un nuevo articulo

Creamos un Trigger para guardar seguimiento de Articulos actualizados y quien los actualizó. Guardar los datos anteriores y los datos nuevos, quien los actualizó, la fecha y la hora.

Creamos una tabla para guardar la información anteriormente solicitada 

Creamos el trigger con la siguiente estructura

Vemos si quedo el trigger

Vamos a probar el trigger actualizando un articulo 

Observamos los datos modificados

Crear un trigger para guardar seguimiento de articulos eliminados y quien los eliminó

Creamos una nueva tabla para que guarde los articulos eliminados 

-Guardar los datos Anteriores

-Guardar qien los eliminó, fecha y hora.

Creamos el trigger con la siguiente estructura

Probamos el trigger de eliminar y guardar el articulo eliminado 

FUNCIONES DE CONTROL DE FLUJO (IF): Establece una condición de acuerdo a varios argumentos de mando

1.Consultar los Artículos que tienen precio mayor a 100000 y menor igual a 950000, y sacar un mensaje que diga económico, de lo contrario debe salir un mensaje que diga costoso.

Utilizamos el siguiente comando ;

2.Consultar los Artículos que tienen un precio menor o igual a 950000, y sacar un mensaje que diga Porcentaje de Aumento el 25%, de lo contrario debe salir un mensaje que diga Porcentaje de aumento del 40%, con el Alias de Incremento.

Implementamos el siguiente codigo

FUNCIONES DE CONTROL DE FLUJO (Case)

¡Crea tu página web gratis! Esta página web fue creada con Webnode. Crea tu propia web gratis hoy mismo! Comenzar