Существует два способа добавления функций в MySQL:
Можно добавить функцию посредством интерфейса определяемых пользователем функций (user-definable function - UDF). Определяемые пользователем функции добавляются и удаляются динамически с помощью команд CREATE FUNCTION и DROP FUNCTION (see Раздел 9.2.1, «Синтаксис CREATE FUNCTION/DROP FUNCTION »).
Можно добавить функцию как "родную" (встроенную) функцию MySQL. "Родные" функции компилируются вместе с остальным кодом сервера mysqld и становятся постоянно доступными.
Каждый метод имеет преимущества и недостатки:
Если вы пишете определяемую пользователем функцию, то помимо сервера необходимо инсталлировать объектный файл. В этом нет необходимости при компиляции функции вместе с сервером.
UDFы можно добавить в бинарную поставку MySQL. Для "родных" функций необходимо изменять поставку исходного кода.
При обновлении поставки MySQL можно продолжать использовать ранее инсталлированные UDFы. Для "родных функций нужно при каждом обновлении вносить изменения повторно.
Независимо от выбранного метода добавления новых функций, их можно использовать точно так же, как и встроенные функции, подобные ABS() или SOUNDEX().