Spec-Zone.ru › MySQL 5.7

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.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/create-function-loadable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API