Actividad 1-B
crear un trigguer con el nombre de valorventa que al insertar un articulo realice el siguiente calculo:
1. calcular el valorventa de la tabla detalle con un incremento del 23% del valor unitario de la tabla articulo
Análisis:
a) campo a reemplazar= valor venta de la tabla detalle
b) con quien o que lo van a reemplazar= (valor unitario *0.23) + valor unitario de la tabla articulo
c) condiciones= articulo.codigo = detalle.codigo
d) comando update
sentencia MYSQL
MYSQL> update detalle ser valorventa= (select valor unitario +(valorunitario *0.23 from articulo where articulo.codigo= detalle.codigo);
ejemplo:
->delimiter //
-> create trigger valorventa after insert on articulo
-> for each row
-> begin
-> update detalle set valorventa = (select valorunitario + (valorunitario * 0.23) from articulo where articulo.codigo = detalle.codigo);
-> end
-> //
Ejemplo 2
crear un trigger con el nombre de actualizar_existencia que al insertar un detalle realice el siguiente calculo:
- calcular las existencias según la tabla detalle de cada articulo
a) campo a reemplazar = existencia de la tabla articulo
b) con quien o que lo va a reemplazar = cantidad -suma(cantidad) de la tabla detalle.
c) condiciones= detalle.codigo = articulo.codigo
d) comando update
update articulo set existencia = cantidad -(select sum (cantidad) from detalle where detalle.codigo = articulo.codigo);
->delimiter //
->create trigger Actualizar_Existenciap after insert on detalle
-> for each row
-> begin
-> update articulo set existencia = Cantidad - (select sum(cantidad) from detalle where detalle.codigo = articulo.codigo);
-> end
-> //
-> delimiter ;
Ejemplo de un triggers:
la "idea" es crear un trigger que antes de insertar un producto, calcule el valor venta.
supongamos la siguiente situación: En una empresa vende productos y se gana un porcentaje fijo por cada producto.
crear la siguiente base de datos
use pruebatrigger;
create table productos(
-> codigo varchar(12) primary key,
-> nombre varchar(30),
-> porganar int(2),
-> costo int,
-> valorventa int,
-> cantidad int);
select *from productos;
insert into productos values('1','arroz 1 kilo',15,1800,0,45);
select *from productos;
Ejemplo 2:
vuelva a calcular el valor de la venta:
delimiter//
create trigger actvalorventa before update on productos
for each row
begin
set new.valorventa= new.costo + new.costo*new.Porganar/100;
end
//
delimiter ;