我遇到了一個MySQL函數的問題,我從另一個數據庫中提取。我做了並分別導入了數據和功能和程序。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;
preg_replace是一個php函數 - 不是mysql。另見:http://stackoverflow.com/questions/1815865/is-there-a-mysql-equivalent-of-phps-preg-replace – ethrbunny
@ethrbunny我知道,但我想知道如果我沒有看到其他的東西D b。理想情況下,我只是想從那裏複製它。這個函數適用於其他分貝,所以我認爲它必須在某處。除了函數和過程還有其他東西存儲在MySQL數據庫? –