1000 FAQ, 500 tutoriales y vídeos explicativos. ¡Aquí sólo hay soluciones!
Crear una función MySQL en Servidor Cloud
Esta guía detalla el uso de DELIMITER
para crear funciones MySQL en Servidor Cloud Infomaniak.
Preámbulo
- Al crear funciones o procedimientos almacenados en MySQL, es crucial comprender el papel de los delimitadores.
- El uso correcto de los delimitadores es esencial para evitar errores de sintaxis que pueden ocurrir 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 secuencia de caracteres utilizados 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 disparadores que contienen varias instrucciones SQL, es necesario cambiar temporalmente el delimitador para evitar errores de sintaxis.
Cuando crea una función, procedimiento o disparador, a menudo necesita utilizar varias instrucciones SQL dentro del bloque BEGIN...END
El punto y coma (;
Como MySQL también se utiliza para completar estas instrucciones internas, podría interpretar el primer punto y coma como el final de la definición de la función, lo que daría lugar 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 usando delimitadores personalizados
Antes de definir la función, debe decirle a MySQL que va a utilizar otro delimitador. En el ejemplo que figura a continuación, $$
se utilizará como nuevo delimitador:
DELIMITER $$
Con el nuevo delimitador en su lugar, ahora puede definir su función. El CREATE FUNCTION
incluye el cuerpo de la función, donde se pueden utilizar instrucciones SQL internas separadas por puntos y comas sin que ello sea problemático:
CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$
En este ejemplo:
CREATE FUNCTION hello_world()
: declara el comienzo de la definición de funciónhello_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 el interior, el punto y coma se utiliza para separar las instrucciones SQL.RETURN 'Hello World';
: Instrucción SQL que devuelve la cadena de caracteresHello World
.
Después de definir la función, devolver el delimitador a su estado predeterminado (el punto y coma). Esto permite seguir ejecutando las instrucciones SQL habituales en los siguientes scripts:
DELIMITER ;