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.
Prólogo
- 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 surgir debido a la presencia de múltiples instrucciones SQL en una sola definición de función o procedimiento.
Comprender el Delimitador
Un delimitador es un carácter o una secuencia de caracteres utilizados para separar las instrucciones SQL en un script. Por defecto, MySQL utiliza el punto y coma (;) como delimitador. Sin embargo, al crear funciones, procedimientos almacenados o disparadores que contienen múltiples instrucciones SQL, es necesario cambiar temporalmente el delimitador para evitar errores de sintaxis.
Cuando crea una función, procedimiento o disparador, a menudo necesita usar múltiples instrucciones SQL dentro del bloque BEGIN...END. Dado que el punto y coma (;) también se utiliza para terminar 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 resultaría en un error de sintaxis. Para evitar este problema, debe cambiar el delimitador durante la definición de la función.
Crear una función simple utilizando delimitadores personalizados
Antes de definir la función, debe indicar a MySQL que va a usar otro delimitador. En el ejemplo a continuación, $$ se utiliza 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 puede usar instrucciones SQL internas separadas por puntos y comas sin que esto cause problemas:
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ónhello_world.RETURNS TEXT: especifica el tipo de datos que la función devuelve.LANGUAGE SQL: indica que el lenguaje utilizado para la función es SQL.BEGIN ... END: encapsula el código de la función. Dentro, 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, restablecer el delimitador a su estado predeterminado (el punto y coma). Esto permite continuar ejecutando las instrucciones SQL habituales en sus scripts siguientes:
DELIMITER ;