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

一、針對這個問題可以先查看創建函數的功能是否開啓

1).-- 查看是否開啓創建函數的功能

show variables like '%func%';

2).-- 開啓創建函數的功能

set global log_bin_trust_function_creators = 1;

二、檢查函數語法是否正確
delimiter ;;
CREATE DEFINER=`root`@`124.xx.xx.xx` FUNCTION `getSequence`(seqName varchar(50)) RETURNS bigint(20)
BEGIN
   declare n_current_value bigint;
   declare n_increment int;
   select current_value,increment
     into n_current_value,n_increment from sys_sequence where name = seqName;
   update sys_sequence
 set current_value = n_current_value + n_increment
where name = seqName;
    
RETURN n_current_value;
END
 ;;
delimiter ;

在上述語法中root 爲數據庫用戶名,124.xx.xx.xx爲數據庫的ip,爲了確認用戶名和ip是否正確可以通過SQL語句

select current_user();來覈對一下數據庫用戶名和ip。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章