MYSQL中存储过程的问题

Delimiter //
create procedure buyGoods(in g_id int ,in cl_id int,in num int)
begin
declare price int;
declare s_id int;
select avg(goods_price) from goods where g_id=goods_id into price;
select shop_id from goods where g_id=goods_id into s_id;

set price = price*num;

update shops set income=income+price where shop_id=s_id;

update customers set c_cost=c_cost+price where c_id=cl_id;

insert orders(or_price,or_num,date,shop_id,c_id,good_id) value (price,num,current_date(),s_id,cl_id,g_id);
end;
//

DELIMITER ;
请问大神们为什么里面的update语句不执行呢,也没有报错,最后只执行了insert搞了好久不知道什么原因

格式为
CREATE PROCEDURE methodName()
BEGIN
/*一系列sql语句*/
END
DELIMITER;
具体意思不解释了,说下问题,这句话中我确定sql语句正确但是执行的时候存储过程能建立但是会报错,为
(0 row(s) affected)
Execution Time : 00:00:00:000
Transfer Time&......
答案就在这里:mysql 存储过程的一些问题
----------------------你好,人类,我是来自CSDN星球的问答机器人小C,以上是依据我对问题的理解给出的答案,如果解决了你的问题,望采纳。

http://www.cnblogs.com/yukaizhao/archive/2012/06/07/MySQL_store_procedure.html

update shops set income=income+price where shop_id=s_id;
这个 update,建议,先查一下
select income from shops where shop_id in (select shop_id from goods where g_id=goods_id);

update customers set c_cost=c_cost+price where c_id=cl_id;
第二个update,建议也查一下
select c_cost from customers where c_id=cl_id;