Base de conocimientos

1 000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!

Crear una función MySQL en Servidor Cloud

Actualización 06/08/2026

Esta guía detalla el uso de DELIMITER para crear funciones MySQL en Servidor Cloud de Infomaniak.

 

Introducción

  • Al crear funciones o procedimientos almacenados en MySQL, es fundamental comprender el papel de los delimitadores.
  • El uso correcto de los delimitadores es esencial para evitar errores de sintaxis que puedan surgir debido a la presencia de varias instrucciones SQL en una única definición de función o procedimiento.

 

Comprender el delimitador

Un delimitador es un carácter o una secuencia de caracteres que se utilizan para separar las instrucciones SQL en un script. Por defecto, MySQL utiliza el punto y coma (;) como delimitador. Sin embargo, cuando se crean funciones, procedimientos almacenados o desencadenadores que contienen varias instrucciones SQL, es necesario cambiar temporalmente el delimitador para evitar errores de sintaxis.

Cuando crea una función, un procedimiento o un disparador, a menudo necesita utilizar varias instrucciones SQL dentro del bloque BEGIN...END. Dado que el punto y coma (;) también se utiliza para finalizar estas instrucciones internas, MySQL podría interpretar el primer punto y coma como el final de la definición de la función, lo que provocaría un error de sintaxis. Para evitar este problema, debe cambiar el delimitador durante la definición de la función.

 

Crear una función sencilla utilizando delimitadores personalizados

Antes de definir la función, debe indicar a MySQL que va a utilizar otro delimitador. En el ejemplo siguiente, $$ se utiliza como nuevo delimitador:

DELIMITER $$

Con el nuevo delimitador implementado, ahora puede definir su función. La instrucción CREATE FUNCTION incluye el cuerpo de la función, donde puede utilizar instrucciones SQL internas separadas por puntos y coma sin que esto cause ningún problema:

CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$

En este ejemplo:

  • CREATE FUNCTION hello_world(): declara el inicio de la definición de la función hello_world.
  • RETURNS TEXT: especifica el tipo de datos que devuelve la función.
  • LANGUAGE SQL: indica que el lenguaje utilizado para la función es SQL.
  • BEGIN ... END: encapsula el código de la función. En su interior, el punto y coma se utiliza para separar las instrucciones SQL.
  • RETURN 'Hello World';: instrucción SQL que devuelve la cadena de caracteres Hello World.

Después de definir la función, restablezca el delimitador a su estado predeterminado (el punto y coma). Esto permite seguir ejecutando las instrucciones SQL habituales en sus scripts posteriores:

DELIMITER ;

¿Le ha sido útil esta FAQ?