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.