MySQL ERROR 1418 的解决方法(自定义函数)
1.问题背景:
在创建自定义函数时遇到错误:
创建一个现实时间的函数: create function show_time() returns varchar(30) return date_format(now(), ‘%Y年%m月%d日 %H时%i分%s秒’);
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)
2.解决方法:
方法 1.登陆mysql数据库
set global log_bin_trust_function_creators = 1;
方法 2.在创建子程序(存储过程、函数、触发器)时,声明为DETERMINISTIC或NO SQL与READS SQL DATA中的一个,
格式如下:
> CREATE DEFINER = CURRENT_USER PROCEDURE `new_pro`() > DETERMINISTIC > BEGIN > #Routine body goes here... > END;
> CREATE DEFINER = CURRENT_USER FUNCTION `new_FUNC`() > RETURNS VARCHAR(20) > DETERMINISTIC > BEGIN > #Routine body goes here... > END;
3.解决后如图:
参考:https://blog..net/yongsheng0550/article/details/6250466