9.2. Добавление новых функций в MySQL
9.2.1. Синтаксис CREATE FUNCTION/DROP FUNCTION
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|REAL|INTEGER}
SONAME shared_library_name
DROP FUNCTION function_name
Определяемая пользователем функция (UDF) - это средство, позволяющее расширить MySQL за счет новой функции, которая работает подобно "родным" (встроенным) функциям MySQL, таким как ABS() и CONCAT() .
AGGREGATE - новая опция для версии MySQL 3.23. AGGREGATE - функция работает точно так же, как и "родные" GROUP -функции MySQL GROUP вроде SUM или COUNT() .
CREATE FUNCTION сохраняет имя, тип и имя разделяемой библиотеки функции в системной таблице mysql.func . Чтобы создавать и удалять функции, необходимо обладать привилегиями INSERT и DELETE для базы данных mysql .
Все активные функции подгружаются при каждом запуске сервера, за исключением случая, когда mysqld запускается с опцией --skip-grant-tables . Тогда инициализация UDF пропускается и UDFы недоступны (активная функция - это функция, которая была загружена посредством CREATE FUNCTION и не удалена с помощью DROP FUNCTION ).
Инструкции по написанию определяемых пользователем функций находятся в разделе See Раздел 9.2, «Добавление новых функций в MySQL». Чтобы механизм UDF работал, функции должны быть написаны на C или C++, используемая операционная система должна поддерживать динамическую загрузку и mysqld должен быть скомпилирован динамически (а не статически).
Отметим, что для того, чтобы работала AGGREGATE , таблица mysql.func должна содержать столбец type . В противном случае следует запустить сценарий mysql_fix_privilege_tables , чтобы внести нужные исправления.
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|