一、針對這個問題可以先查看創建函數的功能是否開啓
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。