本人菜鸟, 学习mysql数据库的时候 , 创建一个简单的function ,如下:
DELIMITER //
create function add_num( a int , b int ) returns int
begin
declare tot int ;
set tot = a + b ;
return tot ;
end//
DELIMITER ;
然后就提示错误 :
ERROR code 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)
查了许多度娘,然后就明白了 log_bin_trust_function_creators 的限制效果。
解决方法:
(1)首先查看 log_bin_trust_function_creators 的状态 , 看到是OFF ,要改为ON !
show variables like 'log_bin_trust_function_creators' ;
(2) 修改状态
SET @@global.log_bin_trust_function_creators='ON' ;
(3)重新执行function代码 ,就可以了!!