MySQL: declarar un cursor

Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.

MySQL: declarar un cursor

Este tutorial de MySQL explica cómo declarar un cursor Sintaxis y ejemplos en MySQL.

describir

Un cursor es una instrucción SELECT definida en la sección de declaración de un procedimiento almacenado en MySQL.

sintaxis

La sintaxis para declarar un cursor en MySQL es:

DECLARE cursor_name CURSOR FOR
  select_statement;

parámetro o parámetro

cursor_name El nombre asignado al cursor. select_statement La instrucción SELECT asociada con el cursor.

ejemplo

Veamos cómo declarar un cursor en MySQL.

Por ejemplo:

DECLARE c1 CURSOR FOR
  SELECT site_id
  FROM sites
  WHERE site_name = name_in;

El conjunto de resultados de este cursor son todos los valores de site_id donde site_name coincide con la variable name_in.

A continuación se muestra una función que utiliza este cursor.

DELIMITER //

CREATE FUNCTION FindSiteID ( name_in VARCHAR(50) )
RETURNS INT

BEGIN

   DECLARE done INT DEFAULT FALSE;
   DECLARE siteID INT DEFAULT 0;

   DECLARE c1 CURSOR FOR
     SELECT site_id
     FROM sites
     WHERE site_name = name_in;

   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

   OPEN c1;
   FETCH c1 INTO siteID;

   CLOSE c1;

   RETURN siteID;

END; //

DELIMITER ;

Luego puede llamar a la nueva función (que contiene el cursor) de la siguiente manera:

SELECT FindSiteID ('TechOnTheNet.com');