可加载函数,顾名思义,必须加载到服务器中才能使用。MySQL 支持在服务器启动时自动加载函数,然后手动加载。
加载可加载函数时,有关它的信息可用,如 第 5.6.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
可加载函数的自动加载发生在正常的服务器启动序列期间。服务器加载mysql.func
表中注册的函数。如果服务器以该
--skip-grant-tables
选项启动,则表中注册的功能不会加载且不可用。
要删除可加载函数,请使用该
DROP
FUNCTION
语句。例如:
DROP FUNCTION metaphon;
DROP
FUNCTION
具有以下效果:
它卸载函数以使其不可用。
It removes the function from the
mysql.func
system table. For this reason,DROP FUNCTION
requires theDELETE
privilege for themysql
system database. With the function no longer registered in themysql.func
table, the server does not load the function during subsequent restarts.
While a loadable function is loaded, information about it is
available from the mysql.func
system table.
See Section 5.6.2, “Obtaining Information About Loadable Functions”.
CREATE
FUNCTION
adds the function to the table and
DROP
FUNCTION
removes it.
要重新安装或升级与可加载函数关联的共享库,请发出
DROP
FUNCTION
语句,升级共享库,然后发出
CREATE
FUNCTION
语句。如果先升级共享库再使用
DROP
FUNCTION
,服务器可能会意外关闭。