Sintaxe CREATE FUNCTION/DROP FUNCTION


Uma função definida pelo usuário (user-definable function - UDF) é um modo de extender o MariaDB com uma nova função que funciona como funções nativas do MariaDB tais como ABS() e CONCAT().

AGGREGATE é uma nova opção do MariaDB Versão 3.23. Uma função AGGREGATE funciona exatamente como uma função GROUP nativa do MariaDB como SUM ou COUNT().

CREATE FUNCTION salva o nome e o tipo da função e o nome da biblioteca compartilhada na tabela do sistema mysql.func. Você deve ter privilégios INSERT e DELETE no banco de dados MariaDB para criar e deletar funções.

Todas as funções ativas são recarregadas a cada vez que o servidor é reiniciado, a menos que você reinicie o mysqld com a opção --skip-grant-tables. Neste caso, a inicialização de UDF é ignorada e as UDFs estão indisponíveis. (Uma função ativa é aquela que foi carregada com CREATE FUNCTION e não foi removida com DROP FUNCTION.)

Para instruções sobre como escrever funções denidas por usuários, veja "Adicionando Novas Funções ao MySQL". Para o mecanisnmo UDF funcionar, as funções dever ser escritas em C ou C++, seu sistema operacional deve suporta carregamento dinâmico e você deve compilar o mysqld dinamicamente (e não estaticamente).

Note que para fazer AGGREGATE funcioanr, você deve ter uma tabela mysql.func que contém a coluna type. Se você não tem esta tabela, você deve executar o script mysql_fix_privilege_tables para criá-la.

Retornar