mysql创建函数报错_oracle创建函数

mysql创建函数报错_oracle创建函数目前在项目中,执行创建mysql的函数出错, mysql 创建函数出错信息如下: Error Code: 1227. Access denied; you need (at least one of…

目前在项目中,执行创建mysql的函数出错,
mysql 创建函数出错信息如下:

Error Code: 1227. Access denied; you need (at least one of) the SUPER privilege(s) for this operation

代码100分

首先检查创建函数的功能是否开启,检查是否开启创建功能的SQL如下:

代码100分-- 查看是否开启创建函数的功能
show variables like "%func%";
-- 开启创建函数的功能
set global log_bin_trust_function_creators = 1;

执行完SQL之后发现已经开启了,随检查自己的SQL是否写错(因为SQL是别人给的,在别人环境没问题,在自己的环境就有可能)。
突然发现了确实是SQL出现问题,由于他创建的SQL有指定用户,所以导致出现问题,以下是他的SQL:

DROP FUNCTION IF EXISTS `nextval`;
DELIMITER ;;
CREATE DEFINER=`devop`@`%` FUNCTION `nextval`(`seq_name` VARCHAR(50)) RETURNS varchar(20) CHARSET utf8
BEGIN 
   DECLARE seq_max BIGINT(20);
   UPDATE sequenceconftable SET `max` = `max` + NEXT WHERE NAME = seq_name; 
   SELECT `max` INTO seq_max FROM sequenceconftable WHERE NAME = seq_name ;
   RETURN seq_max; 
END
;;
DELIMITER ;

由于CREATE_FUNCTION规范,可以发现就是DEFINER这个参数是可以指定数据库用户的,但是自己的库却不是这个用户,所以导致问题。

目前问题已经解决。

-EOF-

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10624.html

(0)
上一篇 2022-12-24
下一篇 2022-12-24

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注