例如
DELIMITER //
CREATE PROCEDURE XX()
BEGIN
DECLARE i VARCHAR(10);
SET i=6;IF i>5 THEN
SELECT 'aaa' AS message ;
-- 我想程序执行到这个地方就终止执行后面的语句.直接退出SP .. 就像在java中的break一样...
END IF;IF i>4 THEN
SELECT 'bbb' AS message ;
END IF;IF i>3 THEN
SELECT 'ccc' AS message ;
END IF;
END//
DELIMITER;
求大哥明示~~~~~~

解决方案 »

  1.   

    可以使用 LEAVE label参考手册中的例子和说明。MySQL官方文档 http://dev.mysql.com/doc/refman/5.1/zh/index.html
      

  2.   

    mysql help:
    CREATE PROCEDURE doiterate(p1 INT)
    BEGIN
      label1: LOOP
        SET p1 = p1 + 1;
        IF p1 < 10 THEN ITERATE label1; END IF;
        LEAVE label1;
      END LOOP label1;
      SET @x = p1;
    END
      

  3.   

     好像还是不太明白,我这个的label 怎么写。。
     我想要的是退出整个SP这个label 要咋写呢?
      

  4.   

    DELIMITER //
    CREATE PROCEDURE XX()
    L_END: BEGINDECLARE i VARCHAR(10);
    SET i=6;IF i>5 THEN
    SELECT 'aaa' AS message ;
    leave L_END;
    END IF;IF i>4 THEN
    SELECT 'bbb' AS message ;
    END IF;IF i>3 THEN
    SELECT 'ccc' AS message ;
    END IF;
    END;
    END LOOP label1;//
    DELIMITER;
      

  5.   

    DELIMITER //
    CREATE PROCEDURE XX()
    L_END: 
    BEGIN
    DECLARE i VARCHAR(10);
    SET i=6;IF i>5 THEN
    SELECT 'aaa' AS message ;
    LEAVE L_END;
    END IF;IF i>4 THEN
    SELECT 'bbb' AS message ;
    END IF;IF i>3 THEN
    SELECT 'ccc' AS message ;
    END IF;END L_END//