Esse script eu informo o id,quantidade, e uma variável pra retornar o resultado, gostaria que quando chamasse fosse incrementada a cada chamada a quantidade e a quantidade * o valor.
delimiter //
create procedure novo(argId int,quantidade smallint,out total varchar(10))
begin
declare total_quantidade smallint;
declare total_valor float(5,2) default 1;
declare v1 float(5,2);
declare v2 int;
declare curs cursor for select preco,quant from produtos where id = argId;
open curs;
fetch curs into v1,v2;
if v2 >= quantidade then
SET SQL_SAFE_UPDATES=0;
update produtos set quant = quant - quantidade where id = argId limit 1;
SET SQL_SAFE_UPDATES=1;
set total_quantidade = total_quantidade + quantidade;
set total_valor = total_valor + (quantidade * v1);
end if;
close curs;
set total = concat('(',total_quantidade,',',total_valor,')');
end //
delimiter ;</pre>
call novo(60,1,@q);
select @q;