使用Deterministic
确定性函数用关键词Deterministic标识,表示函数的返回值完全由输入参数决定。
确定性函数有以下用处:
可以在基于函数的索引中使用该函数;
可以在物化视图中调用;
Oracle11g开始会对其参数及其返回结果进行缓存处理以提升性能。
但是,是不是一个确定性函数是需要用户来负责的,就是说对函数进行编译的时候不会检查出这个函数是否是确定性的。
版本:mysql8.0
前置代码:
DELIMITER $
create function fun_sumscores() returns int
begin
declare c int;
SELECT avg(score) from score into c;
return c;
END $
报错信息如下:

↑可以看到有一个关键词determinitic,该函数便是确定性函数。
代码如下:
delimiter $$
create function func() returns int deterministic
begin
declare c int;
select avg(score) from into c;
return c;
end$$
delimiter ;
运行结果如下:

至此,成功实现了函数的定义。
版权声明:本文为weixin_42251246原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。