CREATE [AGGREGATE] FUNCTION nome_função RETURNS {STRING|REAL|INTEGER} SONAME nome_bibliot_compartilhada DROP FUNCTION function_name
Uma função definida pelo usuário (user-definable function -
UDF) é um modo de extender o MySQL com uma nova função que
funciona como funções nativas do MySQL tais como
ABS()
e CONCAT()
.
AGGREGATE
é uma nova opção do MySQL
Versão 3.23. Uma função AGGREGATE
funciona
exatamente como uma função GROUP
nativa do
MySQL 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
mysql
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 Secção 14.2, “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.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.