9.2 Ajouter des fonctions à MySQL
9 Etendre MySQL
Manuel de Référence MySQL 4.1 : Version Française
->Syntaxe de CREATE FUNCTION/DROP FUNCTION . Ajouter une nouvelle fonction définie par l'utilisateur (UDF) . Ajouter de nouvelles fonctions natives
|
9.2.1 Syntaxe de CREATE FUNCTION/DROP FUNCTION
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
librairies 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, Ajout de nouvelles 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.
|