Portada » Crear función obtenerNombre(pId) en MySQL
Table of Contents
Crear función obtenerNombre(pId) en MySQL
En esta ocasión creamos una función en MySQL llamada obtenerNombre(pId), que nos permitirá obtener el nombre de un autor a partir de un parámetro de entrada.
Usaremos un parámetro de tipo entero (pId) en la cláusula WHERE, de manera que podamos buscar un autor por un ID concreto. Esta es una forma muy práctica de encapsular consultas y reutilizarlas dentro de tu base de datos.
Código completo de la función
1. Eliminar la función si ya existe
Es recomendable borrarla antes de crearla para evitar errores:
DROP FUNCTION IF EXISTS obtenerNombre;
2. Cambiar el delimitador
Como trabajamos con bloques de código, debemos modificar el delimitador temporalmente:
DELIMITER //
3. Crear la función
Ahora sí, creamos la función obtenerNombre:
CREATE FUNCTION obtenerNombre (pId INT)
RETURNS VARCHAR(30)
DETERMINISTIC
BEGIN
-- Declaramos la variable para almacenar el resultado
DECLARE vnombre VARCHAR(30);
-- Guardamos el nombre en la variable según el id recibido
SELECT nombre INTO vnombre
FROM autores
WHERE id = pId;
-- Devolvemos el valor
RETURN vnombre;
END //
DELIMITER ;
4. Probar la función
Creamos una variable con el ID y llamamos a la función:
SET @vid = 2;
SELECT IFNULL(obtenerNombre(@vid), 'No hay autores')
AS "El nombre con el Id especificado es";
Resultado de la función
Si el ID existe: mostrará el nombre del autor asociado.
Si el ID no existe: gracias a IFNULL, devolverá el texto "No hay autores".
De esta forma, evitamos errores y mostramos un mensaje más claro al usuario.
Recomendaciones
Añade el modificador DETERMINISTIC siempre que la función devuelva resultados consistentes para un mismo parámetro.
Ajusta el tipo de dato (VARCHAR(30)) a la longitud real de tu campo nombre.
Usa IFNULL() o COALESCE() cuando la función pueda devolver valores nulos.
Preguntas frecuentes sobre la función obtenerNombre(pId) en MySQL
1. ¿Qué diferencia hay entre un procedimiento almacenado y una función en MySQL? Un procedimiento puede ejecutar varias instrucciones y no siempre devuelve un valor, mientras que una función devuelve siempre un resultado que puede usarse en consultas SQL.
2. ¿Por qué usamos DELIMITER // al crear funciones? Se cambia el delimitador para que MySQL no confunda los puntos y comas internos del bloque con el final de la función.
3. ¿Qué hace la cláusula DETERMINISTIC? Indica que la función devuelve siempre el mismo resultado si recibe los mismos parámetros de entrada, lo que ayuda a la optimización de consultas.
4. ¿Cómo manejo los casos cuando el ID no existe en la tabla? Puedes usar IFNULL() o COALESCE() para devolver un mensaje personalizado como “No hay autores”.
5. ¿Puedo usar esta función dentro de otra consulta SQL? Sí, puedes llamarla directamente en SELECT, WHERE o incluso en otras funciones, siempre que no genere ambigüedad en la lógica de la consulta.
Blackview MP60: un Mini PC compacto con Windows 11 Pro que ahora cuesta 170 euros menos Los Mini PC se han convertido en una alternativa muy interesante para quienes buscan un ordenador potente, silencioso y que apenas ocupe espacio. Si estabas pensando en comprar uno, PcComponentes ofrece una interesante promoción en el Blackview MP60, un... Lee más: PcComponentes rebaja el Blackview MP60 Mini PC con Intel N150 y Windows 11 Pro a solo 329 €
Amazon lanza el nuevo Echo Studio con un diseño más compacto y sonido 3D por 239 euros Los altavoces inteligentes han evolucionado mucho en los últimos años, pero pocos ofrecen una experiencia de audio tan completa como el nuevo Amazon Echo Studio de última generación. La compañía ha renovado su altavoz más potente con un... Lee más: Amazon lanza el nuevo Echo Studio con un diseño más compacto y sonido 3D por 239 euros
ALDI lanza una plancha de vapor Ambiano por 11,99 € y promete convertirse en una de las ofertas más buscadas Si necesitas renovar la plancha de casa sin gastar demasiado, ALDI prepara una promoción muy interesante para los próximos días. A partir del sábado 25 de julio de 2026, la cadena de supermercados pondrá a... Lee más: ALDI pone en oferta la plancha de vapor Ambiano a un precio de auténtico chollo