Entender cómo funcionan las variables es fundamental para escribir procedimientos que hagan algo más que ejecutar consultas simples. Las variables te permiten almacenar valores intermedios, construir lógica condicional, acumular resultados y controlar el flujo de ejecución. En MySQL, las variables locales se crean con la sentencia DECLARE y existen únicamente durante la ejecución del procedimiento; cuando este termina, las variables desaparecen sin dejar rastro.
Definición y uso de variables locales
Cada variable necesita un tipo de dato MySQL (VARCHAR, INT, DECIMAL, BOOLEAN, DATE, etc.) y opcionalmente un valor por defecto con DEFAULT. La posición de las declaraciones dentro del bloque BEGIN...END es estricta: MySQL exige que todas las sentencias DECLARE vayan al principio del bloque, antes de cualquier sentencia ejecutable (como SET, SELECT o IF).
Sintaxis básica
Puedes declarar múltiples variables del mismo tipo en una sola línea separándolas por comas, como:
DECLARE x, y, z INT DEFAULT 0;
Al declarar variables, es necesario utilizar un bloque anónimo si se busca probar lógica fuera de un procedimiento. El ámbito de una variable local está determinado por el bloque BEGIN...END donde se declara, un comportamiento idéntico al de lenguajes como JavaScript (con let), Java o C.
Lea también: Inflación y Contratos de Alquiler
Asignación de valores
Existen formas específicas para asignar datos a las variables dentro de tus scripts:
- SET: Es la forma más directa de asignar un valor. Puedes asignar múltiples variables en un solo SET separándolas por comas (ej. SET x = 10, y = 20, z = 30).
- SELECT INTO: Permite asignar el resultado de una consulta a variables. Es un requisito importante que la consulta devuelva exactamente una fila; si devuelve cero filas, las variables quedarán como NULL, y si devuelve más de una, MySQL generará un error.
Diferencias entre tipos de variables
Es vital distinguir las variables locales de otros mecanismos de almacenamiento en MySQL:
- Variables locales: Se destruyen automáticamente al terminar el procedimiento, evitando que valores residuales afecten a futuras ejecuciones.
- Variables de sesión: Tienen validez únicamente dentro de la sesión donde han sido declaradas.
- Variables del sistema: Se utilizan para configurar MySQL y pueden ser globales o de sesión.
Tabla comparativa de almacenamiento
| Tipo de Variable | Ámbito | Persistencia |
|---|---|---|
| Local | Bloque BEGIN...END | Solo durante la ejecución |
| Sesión | Conexión actual | Hasta cerrar la sesión |
| Sistema | Global o Sesión | Configuración del servidor |
Uso avanzado: Cursores y procedimientos
SQL es un lenguaje orientado a conjuntos. Sin embargo, en situaciones donde necesitamos alterar elementos específicos, los cursores nos permiten trabajar con cada fila de una consulta individualmente. Al implementar procedimientos almacenados con cursores, el flujo estándar es:
- Declarar todas las variables necesarias al inicio.
- Crear el cursor a partir de una consulta SQL (puede incluir JOINs, ORDER, etc.).
- Abrir el cursor para comenzar la iteración.
- Asignar los valores de las columnas a las variables declaradas mediante FETCH.
Dentro del procedimiento, el manejo de errores (como los estados SQLSTATE '02000' para el final de un conjunto de datos) es crucial para controlar cuándo detener el bucle de procesamiento.
Lea también: Cómo funciona la cláusula de amortización compensatoria por riesgo de tipo de interés
Lea también: análisis sobre la cláusula declarativa
tags: #clausula #declare #mysql #explicación
