1.-
A continuación esta una manera más efectiva de hacer el ejercicio:
delimiter $$
drop function if exists ejercicio2_13 $$
create function ejercicio2_13 (e_reserva int)
returns int
begin
declare v_precio int;
declare v_entrada date;
declare v_salida date;
declare exit handler for sqlexception
return 1;
if (select count(*) from reservas where reserva=e_reserva) <> 1 then
return 1;
else
/* grupo y orecio */
select precio_dia
into v_precio
from precios
where grupo=
(select grupo_precio
from apartamentos
where apartamento =
(select apartamento
from reservas
where reserva=e_reserva));
/* fechas*/
select entrada, salida
into v_entrada, v_salida
from reservas
where reserva=e_reserva;
/* total*/
return (datediff(v_salida, v_entrada)+1)*v_precio;
end if;
end $$
delimiter ;
2.-
A continuación esta una manera más efectiva de hacer el ejercicio:
delimiter $$
drop trigger if exists ejercicio2_14 $$
create trigger ejercicio2_14
before update on precios
for each row
begin
if user() <> 'root@localhost' then
signal sqlstate '45000'
set message_text='usuario incorrecto';
end if;
end $$
delimiter ;
3.-
0 comentarios:
Publicar un comentario