MySQL — Implementar y Ejecutar Cursores
Los cursores son una herramienta de MySQL que nos permite recorrer el resultado obtenido de una sentencia SELECT fila a fila.
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.
- Crear nueva tabla EmployeeCursor
- Implementar cursor cursor_employee
- 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.