sábado, 25 de mayo de 2013

Rutinas almacenadas para la administración de mysql (CURSORES).

Los CURSOR o "cursores", almacenan los registros devueltos por una sentencia sql y recorren su contenido.

Ejemplo de sintaxis de un cursor:

CREATE PROCEDURE curdemo()
BEGIN
  DECLARE done INT DEFAULT FALSE;
  DECLARE a CHAR(16);
  DECLARE cur CURSOR FOR SELECT i FROM tablaPrueba;
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

  OPEN cur;

  read_loop: LOOP
    FETCH cur INTO a;
    IF done THEN
      LEAVE read_loop;
    END IF;
       .
  END LOOP;

  CLOSE cur;
END;
Explicación traducida:

CREAR PROCEDURE demo_cursor()
COMENZAR
  DECLARAR hecho ENTERO FALSO POR DEFECTO;
  DECLARAR a CARACTERES(16);
  DECLARAR cursor CURSOR PARA SELECCIONAR i DESDE tablaPrueba;
  DECLARAR CONTINUAR CONTROLADOR PARA SET NO ENCONTRADO hecho = VERDADERO;

  ABRIR cursor;

  leer_bucle: BUCLE
    BUSQUEDA cursor DENTRO DE a;
    SI hecho ENTONCES
      DEJAR leer_bucle;
    FIN DEL IF;
       .
  FIN DEL BUCLE ;

  CIERRE DEL cursor;
FIN;
Las partes escritas en mayúsculas, deben ir así siempre al realizar la sentencia correctamente. 

No hay comentarios:

Publicar un comentario