0
DECLARE oldID int;
DECLARE DONE boolean DEFAULT FALSE;
DECLARE fineCursor CURSOR FOR SELECT `ifLinkID` FROM `image_fine_link` WHERE `image_id` = pimage_id;
DECLARE coarseCursor CURSOR FOR SELECT `icLinkID` FROM `image_coarse_link` WHERE `image_id` = pimage_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET DONE = TRUE;
OPEN fineCursor;
OPEN coarseCursor;
read_loop : LOOP
oldID = NULL;
FETCH fineCursor INTO oldID;
IF oldID IS NOT NULL THEN
CALL update_others(oldID,"delete","fine color",NULL);
END IF;
IF !DONE THEN ITERATE read_loop;
END IF;
LEAVE read_loop;
END LOOP;
SET DONE = FALSE;
read_lopp : LOOP
oldID = NULL;
FETCH coarseCursor INTO oldID;
IF oldID IS NOT NULL THEN
CALL update_others(oldID,"delete","coarse color",NULL);
END IF;
IF !DONE THEN ITERATE read_loop;
END IF;
LEAVE read_loop;
END LOOP;
CLOSE fineCursor;
CLOSE coarseCursor;
И появляется следующая ошибка, действительно возникающая, любая идея?Ошибка хранимой процедуры Mysql - LOOP и CURSOR
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '= NULL;
FETCH fineCursor INTO oldID;
IF oldID IS NOT NULL THEN
CALL upd' at line 16
Спасибо так много искренне! ~
Ах да ... как неосторожно я ... спасибо так много :) – user2741837
@ user2741837 Добро пожаловать :) Если бы это было то, что вы искали, пожалуйста, рассмотрите ** [accept] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) ** ответ. – peterm
Привет, действительно, есть еще одна проблема с этим кодом: отчеты об ошибках: # 1308 - ITERATE без соответствующей метки: read_loop, я думаю, это потому, что область ярлыка не видна в цикле, что я должен делать вместо этого, так как Мне всегда нужно условие суждения, чтобы оставить или повторить цикл? :) Оцените это, если вы можете помочь – user2741837