A única função de um cursor MySQL é obter e exibir os registros do banco de dados por meio de parâmetros de consulta. Embora essa definição pode parecer simples , a verdade é que, como cursores operar de forma diferente e retornar resultados diferentes a partir de declarações típicas SELECT, saber como e quando usar cursores do MySQL , por vezes, pode ser confuso. Em geral, os cursores do MySQL são uma escolha adequada para o processamento de linhas de dados que contêm várias tabelas ou para quando você deseja recuperar e processar linhas específicas dentro de um grupo . Um breve tutorial pode fornecer informações básicas sobre como realizar essa tarefa. Instruções
1
Criar um cursor MySQL na seção Declaração de sua consulta. Dê-lhe um nome exclusivo - importante porque MySQL lhe permite incluir vários cursores em um único procedimento , função ou gatilho - e vinculá-lo a uma instrução SELECT ou SELECT /ONDE comunicado. Um cursor que irá receber e exibir um seleto grupo de nomes de funcionários em uma coluna e um número de identificação de três dígitos em outro será exibido como :
DECLARAR name_cursor CURSORFORSELECT emp_name , id_func de EMPs ONDE id_func entre 100 e 500;
2
Sandwich declaração do cursor depois de declarações de variáveis e condições de procedimento, e antes de declarações de manipulação de opcionais, se você incluir estes em sua consulta:
DECLARAR emp_name VARCHAR ( 30); DECLARAR id_func VARCHAR ( 4);
DECLARAR name_cursor emp_name CURSORFORSELECT , id_func de EMPs ONDE id_func entre 100 e 500;
DECLARE CONTINUE HANDLER PARA NÃO FOUNDSET no_more_rows = true;
< br > 3
Crie uma nova tabela para armazenar e exibir as informações :
CREATE TABLE IF NOT EXISTS EMP_INFO ( emp_name VARCHAR , emp_id VARCHAR );
4
Abra o cursor. Abertura é executado automaticamente a consulta de acordo com a instrução SELECT que você escolheu, conta o número de linhas que a consulta retorna e armazena o resultado na memória para processamento posterior :
name_cursor ABERTO ;
5
Fetch e processar os registros do banco de dados . Esta etapa é onde o verdadeiro trabalho do cursor ocorre como ele volta a partir do último para o primeiro registro do banco de dados e repete ou laços de novo , linha por linha , para extrair as informações que você precisa e inseri-lo na tabela de EMP_INFO :
FETCH INTO name_cursor emp_name , emp_id ; INSERT INTO id_func ( emp_name , id_func );
(Referência 3)
6
Feche o cursor para liberar memória interna o cursor está usando:
name_cursor FECHAR ;
7
Apresentar os resultados de seu novo procedimento armazenado :
SELECT * FROM EMP_INFO ;