语法错误在哪里?

DECLARE irid INT DEFAULT 0;
DECLARE tmp_joinid INT DEFAULT 0;
DECLARE loopjoins_eof INT DEFAULT FALSE;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET loopjoins_eof = TRUE;
START TRANSACTION;

    SET irid = (SELECT id FROM `tables` WHERE `adapter_id`=_aid AND `view_id`=_vid AND `name`=_tname);
    IF irid IS NOT NULL THEN

        DECLARE cur0 CURSOR FOR SELECT `joins`.`id` FROM `joins` WHERE `table_left_id`=irid OR `table_right_id`=irid;
        OPEN cur0;
            loopjoins: LOOP
                FETCH cur0 INTO tmp_joinid;
                IF loopjoins_eof THEN
                    LEAVE loopjoins;
                END IF;
                -- Lösche Join-Columns
                DELETE FROM `join_columns` WHERE `join_id`=tmp_joinid;
            END LOOP loopjoins;
        CLOSE cur0;

    END IF;
COMMIT;
SELECT irid;


1064-您的SQL语法有误;请在第12行的'DECLARE cur0 CURSOR FOR SELECT joinsid FROM joins WHERE table_left_id = i'

谢谢

最佳答案

manual


  游标声明必须出现在处理程序声明之前,变量和条件声明之后。

08-28 15:19