CSS

CSS Mobile

header

2021/05/24

SQL Cursores

 Cursores en MySQL 

  • Estructura de control / bucle para recorrer el resultado de una consulta
  • Guarda el resultado en variables o procesa individualmente las filas devueltas para realizar operaciones.
  • En mysql se crean dentro de las funciones y procedimientos almacenados.

Crear un cursor: (Dentro de un procedimiento)

DELIMITER //

CREATE PROCEDURE EJEMPLO_PROC()

BEGIN

/* Una variable para guardar el resultado */ 

DECLARE TOTAL INT;

/* Una variable para determinar que hemos acabado */

DECLARE DONE BOOL DEFAULT FALSE;

/* El cursor */

DECLARE CUR_1 CURSOR FOR

/* Los datos por los que va a iterar */

SELECT COUNT(*) FROM TABLE_NAME

/* Manejador de error NOT FOUND / Acabado */

DECLARE CONTINUE HANDLER

FOR NOT FOUND 

SET DONE = TRUE;

/* Abrimos el cursor. Apunta a la primera fila del resultado. */

OPEN CUR_1;

/* Bucle de lectura */

LOOP_1 : LOOP

/* Guardamos el resultado en la variable */

FETCH CUR_1 INTO TOTAL;

/* Si has acabado sal del bucle */

IF DONE THEN 

LEAVE LOOP_1;

END IF;

END LOOP LOOP1;

/* Cerramos el cursor */

CLOSE CUR_1;

/* Opcional. Mostramos el resultado */

SELECT TOTAL;

END //

Todo junto:

CREATE PROCEDURE EJEMPLO_PROC()BEGIN

DECLARE TOTAL INT; 

DECLARE DONE BOOL DEFAULT FALSE;

DECLARE CUR_1 CURSOR FOR

/* Consulta. Los datos

por los que va a iterar */

DECLARE CONTINUE HANDLER

FOR NOT FOUND 

SET DONE = TRUE;

OPEN CUR_1;

LOOP_1 : LOOP

FETCH CUR_1 INTO TOTAL;

IF DONE THEN 

LEAVE LOOP_1;

END IF;

END LOOP LOOP1;

CLOSE CUR_1;

END //

No comments:

Post a Comment

Labels

Code (2) papel (2) 3d (1) Animated (1) Art (1) Cartoon (1) Characters (1) Games (1) Notes (1) Paper (1) Robot (1) SQL (1) Unity (1) Unreal (1) paper (1) symbology (1)

Cookies

credits

Total Pageviews