Cómo crear una función en MySQL
- Obtener enlace
- X
- Correo electrónico
- Otras aplicaciones
Cómo crear una función en MySQL para obtener la ciudad de un cliente por su ID
En esta entrada aprenderás a crear una función en MySQL que permite obtener el nombre de la ciudad de un cliente utilizando su id_cliente
. Este tipo de funciones son muy útiles cuando quieres encapsular lógica reutilizable dentro de la base de datos, especialmente en proyectos relacionados con tiendas online o gestión de usuarios.
Instala varios programas con un solo clic
Objetivo de la función
Queremos crear una función llamada obtenerCiudad
que reciba un ID de cliente como parámetro. Si ese ID existe en la tabla clientes
, la función devolverá el nombre de la ciudad asociada. En caso contrario, devolverá NULL
.
❤️ Aprende a crear un usuario en MySQL.
Usar la base de datos y explorar la tabla
Primero nos aseguramos de estar trabajando sobre la base de datos correcta y consultamos la tabla clientes
.
Probar la consulta que usaremos en la función
Antes de crear la función, comprobamos que la consulta devuelve correctamente la ciudad.
-- Esta es la consulta que haremos dentro de la función.
SELECT c.ciudad
FROM clientes AS c
WHERE id_cliente = 2;
Eliminar la función si ya existe
Esto nos asegura que no habrá errores al crearla de nuevo:
-- Si la función existe la borramos.
DROP FUNCTION IF EXISTS obtenerCiudad;
Crear la función obtenerCiudad
La función recibirá un parámetro (pid_cliente
) y devolverá una cadena de texto con el nombre de la ciudad. También añadimos buenas prácticas como READS SQL DATA
para indicar que solo lee datos y no modifica la base de datos.
-- Creamos la función:
DELIMITER //
CREATE FUNCTION obtenerCiudad(pid_cliente INT)
-- El tipo de dato es varchar 50 -> cadena de texto
RETURNS VARCHAR(50)
DETERMINISTIC
-- La función lee datos, pero no modifica las tablas.
READS SQL DATA
BEGIN
DECLARE v_ciudad VARCHAR(50);
SELECT c.ciudad
INTO v_ciudad
FROM clientes AS c
WHERE c.id_cliente = pid_cliente
AND c.id_cliente IS NOT NULL;
RETURN v_ciudad;
END //
DELIMITER ;
Probar la función
Por último, hacemos una llamada de prueba a la función pasándole un id_cliente
válido.
Comentarios
Publicar un comentario