mysql 如何调用函数结果_MySQL自定义函数调用不出结果
自定義函數(shù)的代碼:
DROP FUNCTION IF EXISTS fn_HrStaffBase_GetNameFromidCard
delimiter //
CREATE FUNCTION fn_HrStaffBase_GetNameFromidCard (a VARCHAR(30))
RETURNS VARCHAR(50)
begin
return (SELECT staff_name?? FROM hr_staff_base where idCard = a);
END //
-- ---------------------------------------------------------------------------------------------------------------------
函數(shù)調(diào)用查詢:
select fn_HrStaffBase_GetNameFromidCard (‘299012234225‘)
-- ------------------------------------------------------------------------------
出來都是 null,
處理方法:
新建庫時(shí)時(shí),必須
也可以修改數(shù)據(jù)庫設(shè)置:右鍵數(shù)據(jù)庫,鼠標(biāo)點(diǎn)擊編輯數(shù)據(jù)庫
要設(shè)置數(shù)據(jù)庫如下圖:
原來設(shè)置的是:
數(shù)據(jù)庫只能讀取拉丁值,無法讀取中文
所以導(dǎo)致調(diào)用函數(shù)結(jié)果為:
-- ---------------------------------------------------------------
修改數(shù)據(jù)庫設(shè)置后 ,查詢結(jié)果出現(xiàn):
#################################################################################
有時(shí)候mysql不能建立自定義函數(shù)是因?yàn)樵摴δ?未開啟
輸入 show variables like ‘%func%‘; 命令
會(huì)看到 log_bin_trust_function_creators 的狀態(tài),如果是OFF表示自定義函數(shù)功能是關(guān)閉的
輸入命令 set global log_bin_trust_function_creators=1;
可將 log_bin_trust_function_creators 開啟自定義函數(shù)功能
但是這樣設(shè)置是一個(gè)臨時(shí)的方案,因?yàn)閙ysql自動(dòng)重啟后狀態(tài)又會(huì)變?yōu)镺FF,所以需要在
在服務(wù)啟動(dòng)時(shí)加上 “--log-bin-trust-function-creators=1 ”參數(shù)。 或在my.ini(my.cnf)中的[mysqld]區(qū)段中加上 log-bin-trust-function-creators=1。
總結(jié)
以上是生活随笔為你收集整理的mysql 如何调用函数结果_MySQL自定义函数调用不出结果的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通货膨胀会带来什么影响?通胀对股市有什么
- 下一篇: centos7 mysql tar_Ce