[英]Mysql Stored Procedure + Update Query
问题出在mysql程序上。 我想在mysql过程中运行更新查询。 我已经创建了过程,并调用了它,没有任何错误。 但是问题是过程内部的更新查询没有得到执行。
delimiter $$
create procedure update_member_status(IN new_mem_id int,IN mem_count int)
begin
declare tot_ref_count,mem_ref_id int default 0;
select ref_id into mem_ref_id
from ccf_user
where user_id=new_mem_id;
select ref_count into tot_ref_count
from ccf_user
where user_id=mem_ref_id;
if tot_ref_count = mem_count then
update ccf_user
set status='permanent'
where user_id=mem_ref_id;
else
update ccf_user
set status='*****'
where user_id=mem_ref_id;
end if;
end
$$
然后我调用了该过程:-调用update_member_status(25,6)
我想要执行程序内的更新查询
我将从将此过程重写为单个SQL语句开始:
UPDATE ccf_user c1, ccf_user c2
SET c1.status =
CASE WHEN c1.ref_count = @mem_count
THEN 'permament' ELSE '*****' END
WHERE c1.user_id = c2.ref_id
AND c2.user_id = @new_mem_id
;
然后分析它是否给出了预期的结果,例如使用以下方法: http : //www.sqlfiddle.com/#!2/2310b/1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.