Spec-Zone.ru › MySQL 8.4

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

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

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

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

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

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

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

Чтобы вручную загрузить загружаемую функцию, используйте оператор CREATE FUNCTION. Например:

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

Базовое имя файла зависит от вашей платформы. Распространённые суффиксы — .so для 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-8.4-en/function-loading.html

Spec-Zone.ru

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