Mysql函数确定性错误

时间:2017-06-23 16:27:29

标签: mysql sql function mysql-routines

我使用下面的函数来分割字符串。当我尝试在我的实时数据库上创建函数时,我收到以下错误:

  

此函数在其声明中没有DETERMINISTIC,NO SQL或READS SQL DATA,并且启用了二进制日志记录。

该功能根本没有真正命中数据库。它所做的就是分解一个字符串。所以,如果我发送了1,2,3,4'它把它们分开了。我如何通过此错误?我实际上并没有修改任何表格。

DELIMITER ;;
CREATE FUNCTION `stringSplit`(
x VARCHAR(255),
delim VARCHAR(12),
pos INT) RETURNS varchar(255) CHARSET latin1
RETURN REPLACE(SUBSTRING(SUBSTRING_INDEX(x, ',', pos),
LENGTH(SUBSTRING_INDEX(x, delim, pos -1)) + 1), delim, '') ;;
DELIMITER ;

******更新******

我收到以下错误代码。

ERROR 1419 (HY000): You do not have the SUPER privilege and binary logging is enabled

我认为添加'确定性'是正确的。在返回声明之前。我认为这是处理特权的另一个问题。

1 个答案:

答案 0 :(得分:0)

这是用户权限问题。我更改了用户,代码使用了

Deterministic Return

添加到该功能。