我遇到了从另一个数据库中删除的MySQL函数。我分别完成了数据,功能和程序的导入和导入。
我现在有一个makehash
函数可以调用preg_replace
。虽然我无法在任何地方看到这个功能或程序。
如果我运行show function status
或show procedure status
与preg_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;
答案 0 :(得分:2)
您复制该函数的数据库可能正在使用lib_mysqludf_preg库,该库除了其他功能外,还提供了MySQL的preg_replace()
函数。要使用它,您需要下载,编译(除非使用预先构建的二进制包)并安装该库;有关详细信息,请参阅上面的链接。