Na maioria dos casos, ao executar consultas SQL usando o MySQL Shell ou o MySQL Workbench, não salvamos os resultados, mesmo que tenhamos a funcionalidade para salvar os resultados processados pelo servidor usando um procedimento armazenado.
Neste tutorial, não discutirei procedimentos, funções ou gatilhos armazenados. Em vez disso, vou simplesmente mergulhar em como você pode usar os cursores do MySQL para executar os resultados nos procedimentos armazenados.
Antes de começarmos a criar e usar um cursor com exemplos, vamos levar um momento para discutir alguns pontos -chave sobre um cursor que você deve estar ciente:
Recursos de um cursor MySQL
Agora que sabemos o que significa um cursor, podemos começar a ilustrar como ele funciona usando exemplos do mundo real:
Uso básico
A sintaxe geral a declarar um cursor em MySQL é direta. Começamos usando a palavra -chave Declare, como mostrado na consulta de amostra abaixo:
Como declarar um cursor
Declarar cursor_name cursor para select_expression;O Cursor_Name é o nome dado ao cursor durante a declaração. Observe que a declaração de um cursor deve estar após quaisquer variáveis declaradas para impedir que o MySQL resulte em erros.
Em seguida, é o select_expression, que armazena a instrução SELECT associada ao cursor.
Como abrir um cursor
Depois de declararmos um cursor e o MySQL está ciente de que o cursor existe, podemos começar a usá -lo, o que exige que o cursor seja aberto.
A sintaxe geral para abrir um cursor é como mostrado na consulta abaixo:
Abrir cursor_name;Este comando abre os cursores mencionados pelo seu nome e pode -se começar a usá -lo.
Como recuperar dados
Ter o cursor aberto permite buscar as informações armazenadas em um procedimento, uma função ou um gatilho.
A sintaxe geral para buscar dados usando um cursor é como mostrado:
Buscar cursor_name em variáveis;OBSERVAÇÃO: Como mencionado, verifique se o cursor é usado após a declaração das variáveis para evitar erros.
Como fechar e liberar um cursor
Depois que as operações que exigem o cursor definido são concluídas, é melhor fechar o cursor que liberta a memória associada a ele.
Depois que um cursor foi fechado, um usuário precisa reabrir o cursor usando as palavras-chave abertas (mostradas acima) antes de usar o cursor.
Você não precisa declarar o cursor após a declaração fechada.
A sintaxe geral para fechar um cursor é como mostrado na consulta abaixo:
Fechar cursor_name;Manipulação de erros
MySQL Cursor funciona lendo recursivamente a próxima linha no conjunto de resultados. Se a próxima linha não estiver disponível, o cursor fechará e não retornará os dados, a menos que especificado. Isso pode ser um problema, especialmente depois que o cursor chegar ao final do resultado.
Como solução, um manipulador não encontrado é definido. Isso especifica a ação a ser tomada se a próxima linha não for encontrada.
A sintaxe geral para manuseio de erros ao usar um cursor é:
Declarar o manipulador de continuação não encontrado definido termine = true;O valor do término é uma variável usada para especificar que o cursor chegou ao final do resultado. O nome da variável pode ser qualquer nome desde que se encaixe na Convenção de Nomeação da Variável MySQL.
OBSERVAÇÃO: Como todas as variáveis usadas em um cursor, ela deve ser definida antes de ser usada no cursor.
Exemplo de uso de uso
Vamos criar um cursor que coleta os e -mails dos clientes disponíveis na tabela de clientes do banco de dados de amostra Sakila.
O recurso para baixar e instalar o banco de dados Sakila está abaixo:
https: // dev.mysql.com/doc/sakila/en/
A seguir, ilustra um procedimento que usa um cursor para buscar e -mails:
Use Sakila;Depois que a consulta for executada, você obterá uma saída como mostrado abaixo:
Conclusão
Neste tutorial, caminhamos usando cursores do MySQL para analisar os dados armazenados no conjunto de resultados. Considere a documentação para dominar como implementar os cursores.