当前位置: 首页 > article >正文

MySQL数据库——存储函数(介绍、案例)

目录

介绍

案例


介绍

存储函数是有返回值的存储过程,存储函数的参数只能是IN类型的。具体语法如下:

CREATE FUNCTION 存储函数名称 ([ 参数列表 ])
RETURNS type [characteristic ...]
BEGIN

    -- SQL语句
    RETURN ...;

END ;

characteristic说明:

  • DETERMINISTIC:相同的输入参数总是产生相同的结果
  • NO SQL :不包含 SQL 语句。
  • READS SQL DATA:包含读取数据的语句,但不包含写入数据的语句。

案例

计算从1累加到n的值,n为传入的参数值。

create function fun(n int)
returns int deterministic
begin

    declare total int default 0;

    while n>0 do
        set total := total + n;
        set n := n - 1;
    end while;

    return total;

end;

当我们要执行上述定义存储函数的语句时,会出现报错,这是因为:

在mysql8.0版本中binlog默认是开启的,一旦开启了,mysql就要求在定义存储函数时,需要指定
characteristic特性,否则就会报如下错误

所以应该改为:

create function fun(n int)
returns int deterministic
begin

    declare total int default 0;

    while n>0 do
        set total := total + n;
        set n := n - 1;
    end while;

    return total;

end;

select fun(50);

 需要说明的是:

存储函数使用的情况很少,因为存储函数能实现的,存储过程同样也能实现;而且,存储函数必须要有返回值。


END


学习自:黑马程序员——MySQL数据库课程


http://www.kler.cn/a/144922.html

相关文章:

  • 精准人脉引流软件的开发流程与涉及到的技术
  • RabbitMQ简易安装
  • Go lumberjack 日志轮换和管理
  • 一次【自定义编辑器功能脚本】【调用时内存爆仓】事故排查
  • 深度学习之八(生成对抗网络--Generative Adversarial Networks,GANs)
  • C#,数值计算——有理函数插值和外推(Rational_interp)的计算方法与源程序
  • springsecurity6配置四
  • 基础组件-对Mybatis返回条数限制
  • 交流充电桩与直流充电桩的区别
  • 计算机组成原理-固态硬盘SSD
  • .NET6 开发一个检查某些状态持续多长时间的类
  • flutter,uni-app开发调试ios
  • 使用Kibana让es集群形象起来
  • ⑩【Redis Java客户端】:Jedis、SpringDataRedis、StringRedisTemplate
  • rabbitMq确认机制之ConfirmType
  • 百度文心一言(千帆大模型)聊天API使用指导
  • openssl+ ECC + linux 签名校验开发实例(C++)
  • mysql高级知识点
  • 【Hello Go】Go语言并发编程
  • TrustAsia亮相Matter开发者大会,荣获Matter优秀赋能者奖