Spec-Zone.ru › MySQL 9.2

7.7.1 Установка и удаление загружаемых функций

Загружаемые функции, как следует из названия, должны быть загружены на сервер перед использованием. MySQL поддерживает автоматическую загрузку функций во время запуска сервера и ручную загрузку после этого.

Когда загружаемая функция загружается, информация о ней доступна, как описано в разделе 7.7.2 «Получение информации о загружаемых функциях».

  • Установка загружаемых функций

  • Удаление загружаемых функций

  • Переустановка или обновление загружаемых функций

Установка загружаемых функций

Для ручной загрузки загружаемой функции используйте оператор CREATE FUNCTION. Например:

CREATE FUNCTION metaphon
  RETURNS STRING
  SONAME 'udf_example.so';

Базовое имя файла зависит от вашей платформы. Общие суффиксы — .so для Unix и Unix-подобных систем, .dll для Windows.

CREATE FUNCTION имеет следующие эффекты:

  • Он загружает функцию на сервер, чтобы сделать её доступной немедленно.

  • Он регистрирует функцию в таблице системы mysql.func, чтобы сделать её постоянной при перезапуске сервера. По этой причине CREATE FUNCTION требует привилегии INSERT для системной базы данных mysql.

  • Он добавляет функцию в таблицу Performance Schema user_defined_functions, которая предоставляет информацию о выполнении установленных загружаемых функций. См. раздел 7.7.2 «Получение информации о загружаемых функциях».

Автоматическая загрузка загружаемых функций происходит во время нормальной последовательности запуска сервера:

  • Функции, зарегистрированные в таблице mysql.func, устанавливаются.

  • Компоненты или плагины, установленные при запуске, могут автоматически устанавливать связанные функции.

  • Автоматическая установка функций добавляет функции в таблицу Performance Schema user_defined_functions, которая предоставляет информацию о выполнении установленных функций.

Если сервер запускается с опцией --skip-grant-tables, функции, зарегистрированные в таблице mysql.func, не загружаются и недоступны. Это не относится к функциям, установленным автоматически компонентом или плагином.

Удаление загружаемых функций

Для удаления загружаемой функции используйте оператор DROP FUNCTION. Например:

DROP FUNCTION metaphon;

DROP FUNCTION имеет следующие эффекты:

  • Он разгружает функцию, чтобы сделать её недоступной.

  • Он удаляет функцию из таблицы системы mysql.func. По этой причине DROP FUNCTION требует привилегии DELETE для системной базы данных mysql. Поскольку функция больше не зарегистрирована в таблице mysql.func, сервер не загружает её при последующих перезапусках.

  • Он удаляет функцию из таблицы Performance Schema user_defined_functions, которая предоставляет информацию о выполнении установленных загружаемых функций.

DROP FUNCTION нельзя использовать для удаления загружаемой функции, установленной автоматически компонентами или плагинами, а не с помощью CREATE FUNCTION. Такая функция также удаляется автоматически при удалении компонента или плагина, который её установил.

Переустановка или обновление загружаемых функций

Для переустановки или обновления разделяемой библиотеки, связанной с загружаемой функцией, выполните оператор DROP FUNCTION, обновите разделяемую библиотеку и затем выполните оператор CREATE FUNCTION. Если вы сначала обновите разделяемую библиотеку, а затем используете DROP FUNCTION, сервер может неожиданно завершить работу.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-9.2-en/function-loading.html

Spec-Zone.ru

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