13.7.3.1 Заявление CREATE FUNCTION для загружаемых функций
CREATE [AGGREGATE] FUNCTION function_name
RETURNS {STRING|INTEGER|REAL|DECIMAL}
SONAME shared_library_name
Это утверждение загружает загружаемую функцию с именем function_name. (CREATE
FUNCTION также используется для создания хранимых функций; см. Раздел 13.1.16, «Заявления CREATE PROCEDURE и CREATE FUNCTION».)
Загружаемая функция — способ расширения MySQL новой функцией, которая работает как встроенная (встроенная) функция MySQL, например, ABS() или CONCAT(). См. Добавление загружаемой функции.
function_name — это имя, которое следует использовать в операторах SQL для вызова функции. Клауза RETURNS указывает тип возвращаемого значения функции. DECIMAL — допустимое значение после RETURNS, но в настоящее время функции DECIMAL возвращают строковые значения и должны быть написаны как функции STRING.
Ключевое слово AGGREGATE, если оно указано, означает, что функция является агрегатной (групповой) функцией. Агрегатная функция работает точно так же, как встроенная агрегатная функция MySQL, такая как SUM() или COUNT().
shared_library_name — это базовое имя файла разделяемой библиотеки, содержащего код, реализующий функцию. Файл должен быть расположен в каталоге плагинов. Этот каталог задается значением системной переменной plugin_dir. Дополнительную информацию см. в Разделе 5.6.1, «Установка и удаление загружаемых функций».
CREATE
FUNCTION требует привилегии INSERT для системной базы данных mysql, поскольку она добавляет строку в системную таблицу mysql.func для регистрации функции.
Во время нормальной последовательности запуска сервер загружает функции, зарегистрированные в таблице mysql.func. Если сервер запущен с параметром --skip-grant-tables, зарегистрированные в таблице функции не загружаются и недоступны.
Для обновления разделяемой библиотеки, связанной с загружаемой функцией, выполните оператор DROP
FUNCTION, обновите разделяемую библиотеку, а затем выполните оператор CREATE
FUNCTION. Если вы сначала обновите разделяемую библиотеку, а затем используете DROP
FUNCTION, сервер может неожиданно завершить работу.
© 2025 Oracle
Licensed under the GPLv2 License.