Base de conhecimento
1000 perguntas frequentes, 500 tutoriais e vídeos explicativos. Aqui, você encontra apenas soluções!
Criar uma função MySQL no Servidor Cloud
Este guia detalha o uso de DELIMITER para criar funções MySQL no Servidor Cloud Infomaniak.
Introdução
- Ao criar funções ou procedimentos armazenados no MySQL, é fundamental compreender o papel dos delimitadores.
- O uso correto dos delimitadores é essencial para evitar erros de sintaxe que podem ocorrer devido à presença de várias instruções SQL em uma única definição de função ou procedimento.
Compreendendo o Delimitador
Um delimitador é um caractere ou uma sequência de caracteres usados para separar as instruções SQL em um script. Por padrão, o MySQL usa o ponto e vírgula (;) como delimitador. No entanto, ao criar funções, procedimentos armazenados ou gatilhos que contêm várias instruções SQL, é necessário alterar temporariamente o delimitador para evitar erros de sintaxe.
Ao criar uma função, procedimento ou gatilho, muitas vezes é necessário usar várias instruções SQL dentro do bloco BEGIN...END. Como o ponto e vírgula (;) também é usado para finalizar essas instruções internas, o MySQL pode interpretar o primeiro ponto e vírgula como o fim da definição da função, o que causaria um erro de sintaxe. Para contornar esse problema, você deve alterar o delimitador durante a definição da função.
Criar uma função simples usando delimitadores personalizados
Antes de definir a função, você deve informar ao MySQL que irá usar um delimitador diferente. No exemplo abaixo, $$ é usado como o novo delimitador:
DELIMITER $$Com o novo delimitador em vigor, você pode agora definir sua função. O comando CREATE FUNCTION inclui o corpo da função, onde você pode usar instruções SQL internas separadas por ponto e vírgula sem que isso cause problemas:
CREATE FUNCTION hello_world()
RETURNS TEXT
LANGUAGE SQL
BEGIN
RETURN 'Hello World';
END;
$$Neste exemplo:
CREATE FUNCTION hello_world(): declara o início da definição da funçãohello_world.RETURNS TEXT: especifica o tipo de dados que a função retorna.LANGUAGE SQL: indica que a linguagem utilizada para a função é SQL.BEGIN ... END: encapsula o código da função. Dentro, o ponto e vírgula é usado para separar as instruções SQL.RETURN 'Hello World';: instrução SQL que retorna a cadeia de caracteresHello World.
Após definir a função, restaure o delimitador ao seu estado padrão (o ponto e vírgula). Isso permite continuar a executar as instruções SQL habituais nos seus scripts subsequentes:
DELIMITER ;Link para esta FAQ: https://faq.infomaniak.com/1150
Esta seção de perguntas frequentes foi útil?