MySQL — Implementar y Ejecutar Cursores

Marco Llapapasca
2 min readNov 7, 2020

--

Los cursores son una herramienta de MySQL que nos permite recorrer el resultado obtenido de una sentencia SELECT fila a fila.

MySQL — Implementar Cursores

Para este ejemplo estamos utilizando la base de datos de Northwind y estamos consultando la tabla “Employee” y para la cual vamos a crear una nueva tabla llamada “EmployeeCursor” donde se registrará los datos procesados por el cursor.

Para entender el funcionamiento del cursor vamos a revisar los siguientes puntos.

  1. Crear nueva tabla EmployeeCursor
  2. Implementar cursor cursor_employee
  3. Ejecutar cursor cursor_employee

1. Crear nueva tabla EmployeeCursor

En esta tabla se registrará todos los nuevos datos procesados por el cursor.

2. Implementar cursor cursor_employee

Este cursor tendrá la lógica necesaria para el procesamiento y almacenamiento de los nuevos datos en la tabla EmployeeCursor.

Para este caso el cursor está implementado dentro de un procedimiento almacenado y recibe como parámetro un texto a buscar en las columnas FirstName y LastName de la tabla EmployeeCursor.

Además, debemos tener en consideración las siguientes variables:

FullName: Concatenar el título y su respectivo nombre completo del empleado.

FullName: CONCAT(_TitleOfCourtesy,’ ‘, _FirstName, ‘ ‘, _LastName);

Phone: Contiene el número de teléfono y la extensión de contacto del empleado.

Phone: CONCAT(_HomePhone, ' Ext: ',  _Extension)

Age: Se calcula la edad del empleado en base a la fecha actual del sistema.

Age: YEAR(NOW()) - YEAR(_BirthDate);

Address: Contiene la dirección completa del empleado.

Address: CONCAT(_Address, ', ', _City, ', ', IFNULL(_Region, 'N/S'),  ', ', _PostalCode)

CreateAt: Registra la fecha y hora actual en la que proceso el cursor.

CreateAt: NOW()

3. Ejecutar cursor cursor_employee

En esta etapa se realizará la ejecución del procedimiento almacenado “cursor_employee” y luego validamos los nuevos registros.

CALL cursor_employee ('a');

Luego, de ejecutar el procedimiento almacenado vamos a consultar los nuevos registros en la tabla EmployeeCursor:

SELECT * FROM EmployeeCursor;

Finalmente, obtendremos el siguiente resultado en donde se puede visualizar las nuevas columnas con sus respectivos valores procesados mediante el cursor.

MySQL — EmployeeCursor

--

--

Marco Llapapasca
Marco Llapapasca

Written by Marco Llapapasca

Ingeniero de Software con amplia de experiencia en implementación de arquitecturas Bigdata on-premise, Cloud GCP / Azure / AWS / DWH y desarrollo de Software.

Responses (1)