CREATE [AGGREGATE] FUNCTION function_name
RETURNS {STRING|INTEGER|REAL|DECIMAL}
SONAME shared_library_name
此语句加载名为 的可加载函数
function_name
。(CREATE
FUNCTION
也用于创建存储函数;参见
第 13.1.15 节,“CREATE PROCEDURE 和 CREATE FUNCTION 语句”。)
可加载函数是一种使用新函数扩展 MySQL 的方法,该函数的工作方式类似于本机(内置)MySQL 函数,例如
ABS()
或
CONCAT()
. 请参阅
添加可加载函数。
function_name
是应该在 SQL 语句中用来调用函数的名称。该
RETURNS
子句指示函数返回值的类型。DECIMAL
是 之后的合法值RETURNS
,但目前
DECIMAL
函数返回字符串值,应该像STRING
函数一样编写。
AGGREGATE
关键字(如果给定)表示该函数是聚合(组)函数
。聚合函数的工作方式与本机 MySQL 聚合函数完全相同,例如SUM()
or
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
,服务器可能会意外关闭。