1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and bin
作者:mmseoamin日期:2023-12-21

项目场景:

在MySQL中创建函数报错

问题描述

1418 - This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable)`

create function aab()
returns int 
begin
return 1+1;
end;

原因分析:

原因是开启了log-bin日志,创建函数时,函数中没有包含DETERMINISTIC, NOSQL和 READS SQL DATA声明,即没有涉及修改数据。


解决方案:

1. 查出log_bin_trust_function_creators的值, 输入以下命令
 show variables like 'log_bin_trust_function_creators;
显示:
log_bin_trust_function_creators OFF
2.  修改该值为ON, 输入以下命令
set global log_bin_trust_function_creators=1;
修改值为on, 开启即可
此时无报错
3. 如果需要恢复,修改该值为OFF, 输入以下命令
set global log_bin_trust_function_creators=0;