mysql函数保存时,出现下面的错误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_crea
时间: 2023-11-06 20:18:03 浏览: 155
mysql 报错This function has none of DETERMINISTIC解决方案
5星 · 资源好评率100%
这个错误是因为 MySQL 函数没有被声明为 DETERMINISTIC、NO SQL 或者 READS SQL DATA 中的任何一种。在启用二进制日志记录的情况下,这会导致错误。为了解决这个问题,你需要在函数声明中添加一个 DETERMINISTIC、NO SQL 或 READS SQL DATA 关键字。例如:
```
CREATE FUNCTION my_function(param INT) RETURNS INT
DETERMINISTIC
BEGIN
DECLARE result INT;
-- 函数逻辑
RETURN result;
END;
```
如果你确实需要使用 log_bin_trust_function_creators 参数来跳过该错误,那么你需要先确认是否允许这样做。你可以在 MySQL 配置文件中设置 log_bin_trust_function_creators 参数为 1,或者在 MySQL 命令行中使用 SET GLOBAL log_bin_trust_function_creators=1; 命令来临时启用该参数。但是需要注意的是,这会降低 MySQL 的安全性。
阅读全文