В этом учебном пособии вы узнаете, как в MySQL использовать оператор FETCH для извлечения следующей строки для курсора с синтаксисом и примерами.
Описание
Цель использования курсора в большинстве случаев заключается в том, чтобы извлекать строки из вашего курсора, чтобы можно было выполнить какие-либо операции над данными. После объявления и открытия курсора следующим шагом будет использование инструкции FETCH для извлечения строк из вашего курсора.
Синтаксис
Синтаксис оператора FETCH в MySQL:
Параметры или аргументы
cursor_name – наименование курсора, строки которого вы хотите получить.
variable_list - список переменных, разделенных запятыми, в которые вы хотите сохранить результирующий набор курсора.
Пример
Рассмотрим, как получить следующую строку для курсора, используя оператор FETCH в MySQL.
Например, вы могли бы иметь курсор, определенный в MySQL, следующим образом:
1 2 3 4 |
DECLARE cr1 CURSOR FOR SELECT site_id FROM sites WHERE site_name = name_in; |
Команда, которая будет использоваться для извлечения данных из этого курсора:
1 |
FETCH cr1 INTO siteID; |
Это позволит получить первое значение site_id в переменной site_ID.
Ниже приведена функция, демонстрирующая, как использовать оператор FETCH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
DELIMITER // CREATE FUNCTION FindSiteID ( name_in VARCHAR(50) ) RETURNS INT BEGIN DECLARE done INT DEFAULT FALSE; DECLARE siteID INT DEFAULT 0; DECLARE cr1 CURSOR FOR SELECT site_id FROM sites WHERE site_name = name_in; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cr1; FETCH cr1 INTO siteID; CLOSE cr1; RETURN siteID; END; // DELIMITER ; |