簡體   English   中英

Mysql存儲過程+更新查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM