Ejemplo de cómo se declara un cursor en MySQL
En el lenguaje SQL existen unos tipos de controles llamados cursores que son útiles para recorrer los registros que devuelve una consulta. Este tipo de estructuras sólo deben utilizarse cuando no haya otra forma de manipular conjuntos de datos en una sola instrucción.
Cada base de datos tiene su forma de declarar un cursor e incluso sus propios tipos de cursores (Oracle PL/SQL, Transact, etc). En este caso nos detendremos a ver cómo es la sintaxis para definir un cursor en MySQL.
Este cursor en concreto se podría realizar con una única consulta UPDATE, pero sirve para ver cómo se declara en la sintaxis de MySQL.
Como delimitador se ha usado el doble punto y coma (;;), se puede utilizar cualquier otro, pero deberás sustituirlo en todos los sitios.
Básicamente se declaran dos variables uid y newdate que contendrán el valor de cada campo de la fila. Luego se define el cursor mediante una consulta SQL (es como si se creara una tabla temporal). Finalmente, se recorre el cursor y se aplica la operación adecuada según nuestro programa.
Para ejecutar el cursor podemos usar el método call:
Para guardar el cursor o llamarlo, se puede ejecutar desde el propio programa, utilizando phpMyAdmin, la consola de mysql o MySQL Query Browser por ejemplo.