Курсоры в MySQL

mysql

MySQL позволяет использовать курсоры (CURSORs) в хранимых процедурах. Эта конструкция позволяет организовать сложную обработку данных на стороне сервера привычным программисту способом, а именно — строка за строкой. Обработка данных на стороне MySQL может сократить время обработки данных, т.к. не нужно передавать данные из базы в программу и наоборот, как это часто происходит при работе с базой из PHP скрипта на веб-сервере.

Дальше мы разберем как объявить и работать с курсорами.

При работе с курсорами надо помнить, что они :

  • нечувствительны к изменениям в базе; то есть после выполнения запроса, данные там статичны;
  • работают только на чтение (readonly);
  • просматривают результаты только в одном направлении и не могут «перескакивать» через строки.

Фазы жизни курсора

Курсоры объявляются в начале хранимой процедуры до выполнения каких либо операций.

Перед выборкой строк из курсора его нужно инициализировать (выполняется запрос)

Далее вы можете выбирать данные из курсора, строка за строкой.

Завершается работа с курсором вот так:

Признак отсутствия данных в курсоре

В показанном примере выше, мы вообще то не знаем, вернул ли запрос в курсоре хотя бы одну строку. И выполняем операцию FETCH только для одной строки запроса, хотя их может быть больше. Нам нужен сигнал об окончании данных в курсоре. В MySQL для этого используют обработку исключительных ситуаций — конструкцию

В нашем случае нужно продолжить исполнение (CONTINUE) при возникновении ситуации «нет данных» (NOT FOUND).

Думаю, этой информации достаточно, чтобы начать использовать курсоры. Есть вопросы — пишите :)

Мало букафф? Читайте есчо !

Развертывание бекапов mySQL из консоли unix

Февраль 6, 2018 г.

Как развернуть дамп базы данных mySQL, созданный ранее? Дамп представляет из себя mysql скрипт, в котором последовательно создаются таблицы (CREATE TABLE ...) и, возможно, другие объекты и производиться их наполнение (INSERT INTO ...). Нужно лишь отправить ...

Читать

Создание бекапов базы mySQL из консоли unix

Февраль 13, 2018 г.

Ещё одна шпаргалка по администрированию UNIX серверов. На этот раз рассмотрим несколько полезных команд для создания бекапа базы данных из консоли. Нам понадобится команда mysqldump, которая позволяет создавать sql скрипт базы или её части. Создание ...

Читать

Считаем полное число строк в запросе MySQL, ограниченного LIMIT

Ноябрь 2, 2012 г.

О полезном операторе - SQL_CALC_FOUND_ROWS. Это конструкция просто незаменима для организации постраничного вывода каких либо данных. Все время забываю синтаксис, приходится каждый раз искать. Решил записать в блоге, чтобы уж не терять :). Во всех ...

Читать

Как узнать версию MySQL?

Сентябрь 3, 2018 г.

Получить версию бд можно как из консоли, так и средствами языка mySQL. Версия из консоли UNIX Тут все просто. Получаем версию из консоли. [crayon-696fe9ca3cc62777347919/] Версия из SQL консоли Как получить версию mySQL не из unix консоли, а средствами ...

Читать
 

Комментарии к «Курсоры в MySQL»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: