Search code examples
mysqlstored-procedureshandler

HANDLER in MySQL how is it implemented?


thank you who can help me.

I am doing a procedure in Mysql. everything goes ok, until I try to implement a HANDLER inside a while.

So far everything ok, save my procedure without errors:

BEGIN
        SET N_CONT=0;
        SET N_TOTL=5;
            WHILE N_CONT <= N_TOTL DO
                
            
                SET N_CONT = N_CONT +1;
            END WHILE;
    
    END

when I try to place a handler inside, I get an error and I don't see why:

BEGIN
        SET N_CONT=0;
        SET N_TOTL=5;
            WHILE N_CONT <= N_TOTL DO
                DECLARE EXIT HANDLER FOR SQLEXCEPTION
                    BEGIN
                    -- cuerpo handler
                    END;
            
                SET N_CONT = N_CONT +1;
            END WHILE;
    
    END

What am I doing wrong? someone knows?


Solution

  • I think you need to wrap the body of the WHILE in BEGIN...END to be able to use DECLARE statements in it.

    BEGIN
        SET N_CONT=0;
        SET N_TOTL=5;
        WHILE N_CONT <= N_TOTL DO
            BEGIN
                DECLARE EXIT HANDLER FOR SQLEXCEPTION
                    BEGIN
                    -- cuerpo handler
                    END;
            
                SET N_CONT = N_CONT +1;
            END
        END WHILE;
    END