Mysql调用不存在的函数

时间:2013-01-07 22:53:57

标签: mysql function preg-replace procedure

我遇到了从另一个数据库中删除的MySQL函数。我分别完成了数据,功能和程序的导入和导入。

我现在有一个makehash函数可以调用preg_replace。虽然我无法在任何地方看到这个功能或程序。

如果我运行show function statusshow procedure statuspreg_replace无关,则只显示之前的自定义过程和函数。

我是否遗漏了一些安装在我复制的数据库上的东西,我忽略了复制到新的数据库?

以下是makehash功能:

CREATE DEFINER=`root`@`localhost` FUNCTION `makehash`(description text, raw_location text, title text) RETURNS varchar(32) CHARSET utf8
NO SQL
DETERMINISTIC
begin
    declare data longtext;
    declare hash varchar(32);
    set data = ifnull(description, '');
    set hash = null;
    if length(data) > 64 then
        set data = lower(concat(data, ifnull(raw_location, ''), ifnull(title, '')));
        set hash = md5(preg_replace('/[^a-z]/', '', data));
    end if;
return hash;

1 个答案:

答案 0 :(得分:2)

您复制该函数的数据库可能正在使用lib_mysqludf_preg库,该库除了其他功能外,还提供了MySQL的preg_replace()函数。要使用它,您需要下载,编译(除非使用预先构建的二进制包)并安装该库;有关详细信息,请参阅上面的链接。