mysql自定义结果_MySQL自定义函数调用不出结果

亦凉 2023-01-12 07:50 242阅读 0赞

自定义函数的代码:

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 //

-- ——————————————————————————————————————————————————————————-

函数调用查询:

select fn_HrStaffBase_GetNameFromidCard (‘299012234225’)

-- ———————————————————————————————————————

出来都是 null,

e474a6712be0eadd21814285346bc232.png

处理方法:

新建库时时,必须

也可以修改数据库设置:右键数据库,鼠标点击编辑数据库

要设置数据库如下图:

15f4ab07edab28e1dccab71f22daec3f.png

原来设置的是:

91c8a769295a1e9058817bcf9f249a9b.png

数据库只能读取拉丁值,无法读取中文

所以导致调用函数结果为:

e474a6712be0eadd21814285346bc232.png

-- ———————————————————————————————-

修改数据库设置后 ,查询结果出现:

513a85ca0ebcc3764f3d1ae3cf813aec.png

#################################################################################

有时候mysql不能建立自定义函数是因为该功能2未开启

输入 show variables like ‘%func%’; 命令

会看到 log_bin_trust_function_creators 的状态,如果是OFF表示自定义函数功能是关闭的

输入命令 set global log_bin_trust_function_creators=1;

可将 log_bin_trust_function_creators 开启自定义函数功能

但是这样设置是一个临时的方案,因为mysql自动重启后状态又会变为OFF,所以需要在

在服务启动时加上 “—log-bin-trust-function-creators=1 ”参数。 或在my.ini(my.cnf)中的[mysqld]区段中加上 log-bin-trust-function-creators=1。

发表评论

表情:
评论列表 (有 0 条评论,242人围观)

还没有评论,来说两句吧...

相关阅读

    相关 MySQL定义函数

    > mysql中有许多计算函数,比如聚合函数SUM()、AVG()以及日期时间函数等等,我们可以直接使用;这里我们自定义函数主要用来封装计算,避免重复编写与语句美观。

    相关 MySQL定义函数

    函数 含义和存储过程基本一致 函数和存储过程的区别 1. 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。存储过程