CREATE [AGGREGATE] FUNCTION nom_fonction RETURNS {STRING|REAL|INTEGER} SONAME nom_librairie_partagée DROP FUNCTION nom_fonction
Une fonction définie par un utilisateur
(UDF
) est une méthode pour intégrer une
fonction qui fonctionne de la même fa¸on qu'une fonction
native de MySQL, comme ABS()
et
CONCAT()
.
AGGREGATE
est une nouvelle option pour MySQL
version 3.23. Une fonction AGGREGATE
fonctionne exactement comme une fonction native comme
SUM
ou COUNT()
.
CREATE FUNCTION
enregistre le nom de la
fonction, le type, et le nom des bibliothèques partagées dans
la table mysql.func
. Vous devez avoir les
droits INSERT
et DELETE
dans la base mysql
pour créer et supprimer
les fonctions.
Toutes les fonctions actives sont rechargées chaque fois que le
serveur démarre, sauf si vous démarrez
mysqld
avec l'option
--skip-grant-tables
. Dans ce cas, l'utilisation
des UDF
n'est pas prise en compte et les UDFs
ne sont pas disponibles. (Une fonction active est une fonction
qui peut être chargée avec CREATE FUNCTION
et supprimée par REMOVE FUNCTION
).
Concernant l'écriture des UDFs,
Section 27.2, « Ajouter des fonctions à MySQL ». Pour que le mécanisme des
fonctions UDF
fonctionne, les fonctions
doivent être écrites en C ou C++, votre système doit
supporter le chargement dynamique et vous devez avoir compilé
mysqld
dynamiquement (pas statiquement).
Notez que pour faire fonctionner AGGREGATE
,
vous devez avoir une table mysql.func
qui
contient la colonne type
. Si ce n'est pas le
cas, vous devez exécuter le script
mysql_fix_privilege_table
pour résoudre ce
problème.
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.