28.4 向 MySQL 添加函数

有三种向 MySQL 添加函数的方法:

创建编译函数的每种方法都有优点和缺点:

  • 如果编写用户定义的函数,则除了服务器本身之外,还必须安装目标文件。如果将函数编译到服务器中,则无需这样做。

  • 本机函数需要您修改源分发。 UDF 不这样做。您可以将 UDF 添加到二进制 MySQL 发行版中。无需访问 MySQL 源。

  • 如果升级 MySQL 发行版,则可以 continue 使用以前安装的 UDF,除非升级到 UDF 接口更改的较新版本。对于本机功能,您必须在每次升级时重复进行修改。

无论您使用哪种方法添加函数,都可以像本地函数(例如ABS()SOUNDEX())一样在 SQL 语句中调用它们。

有关描述服务器如何解释对各种功能的引用的规则,请参阅第 9.2.5 节“函数名称的解析和解析”

以下各节描述了 UDF 接口的功能,提供了编写 UDF 的说明,讨论了 MySQL 为防止 UDF 滥用而采取的安全预防措施,并描述了如何添加本机 MySQL 函数。

例如,说明如何编写 UDF 的源代码,请查看 MySQL 源代码发行版中提供的sql/udf_example.cc文件。