Почему я не могу использовать курсор базы данных FAST_FORWARD в MySQL? - PullRequest
0 голосов
/ 21 июня 2019

Как использовать курсор FAST_FORWARD в MySQL? Я прочитал документацию и посмотрел примеры кода, но он не работает, когда я пытаюсь запустить его в MySQL 8.

Мне нужно перебрать таблицу с множеством строк. У меня есть рабочая хранимая процедура, которая делает то, что мне нужно, но она медленная, и я хочу повысить производительность с помощью курсора LOCAL FAST_FORWARD. Когда я изменяю объявление курсора на LOCAL FAST_FORWARD, я получаю следующую ошибку:

"LOCAL" недействителен в этой позиции, ожидая: FOR

Если я уберу слово LOCAL из объявления курсора, я получу следующую ошибку:

Обнаружен посторонний ввод "FAST_FORWARD", ожидая: FOR

Мне кажется, что эти слова просто не относятся к объявлению курсора, но я не могу понять это. Я не мог найти ничего об этой проблеме в официальной документации, и поиск в Интернете был напрасным.

    DECLARE salesCursor CURSOR LOCAL FAST_FORWARD FOR 
    SELECT Sales, Price, Cost, SalesDate, SKULocationID FROM aver.sales
        WHERE SalesDate <= firstSaleDate
        ORDER BY SalesDate DESC;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;

1 Ответ

1 голос
/ 21 июня 2019

LOCAL и FAST_FORWARD - параметры курсора SQL-сервера, они не существуют в MySQL. Насколько я знаю, в MySQL нет ничего эквивалентного им.

...