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

Atualização 06/08/2026

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ção hello_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 caracteres Hello 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 ;

Esta seção de perguntas frequentes foi útil?