快捷搜索: 王者荣耀 脱发

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

经验分享 程序员 微信小程序 职场和发展