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, чтобы
внести нужные исправления.
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.
© 1995-2005 MySQL AB. All rights reserved.
