create   procedure   test() 
begin 
declare   charge   int; 
select   ID   from   test1   where   ID=1 into charge;            
if(charge=1)   then 
select 'erro';
在这里我就想直接把整个持续结束,跳到end处,可是我不知道该如何实现。
else
---------------
---------------
---------------- 
end; 
求那位兄弟帮帮忙指导一下小弟,谢谢了

解决方案 »

  1.   

    储存过程有处理错误的能力,虽然不算强,也还可以用用,应该还有其他方法.create       procedure       test()   
    begin   
    declare       charge       int;  
    -- 定义错误处理:如果发生1146错误,就执行select 'error',并退出. 
    decalre exit handler for 1146
           select   'erro '; 
    select       ID       from       test1       where       ID=1   into   charge;                         
    if(charge=1)       then   
    -- select   'erro '; 
    -- 在这里我就想直接把整个持续结束,跳到end处,可是我不知道该如何实现。 
    -- 以下update不可能存在的表,让MYSQL报出1146的错误:
         update asdfasdfasdf set aa="";
    else 
    --------------- 
    --------------- 
    ----------------   
    end;   
      

  2.   

    1楼的方法确实可以用,总算我这个菜鸟能把问题解决了。
    不过难道没有别的方法吗?我的意思是,在MYSQL中难道没有类似RETURN或者EXIT的东西吗?
      

  3.   

    找到办法了,这样可以更简便的实现
    create procedure test()   
    aa:begin
    declare charge int; 
    declare charge1 int; 
    set charge=1; 
    set charge1=3; 
    if charge=1 and charge1=3 then 
    select 'erro1';  
    leave aa;
    else
    select 'erro2'; 
    leave aa;
    end if;  
    end aa;