以下文章来源于何先振,责编小何

之前我们学过的函数,length、substr、concat等。这些是MySQL的内部函数,而存储函数是用户自己定义的函数。
创建存储函数的语法:
create function 函数名(参数名 参数类型,....)returns 返回值类型[函数的特性]begin函数体 #函数体中有return 语句end
创建函数时函数的特性通常不需要写。
存储函数的调用和之前学过的MySQL中内部函数调用方式一样。
语法:
select 函数名(实参列表)
存储函数的创建和调用,举栗子:
创建无参数存储函数
创建查询员工邮箱的存储函数

调用此函数,查询成功。

注意:
如果在创建存储函数中报如下错:
“you might want to use the less safe log_bin_trust_function_creators variable”。
有两种处理方法:
方式1:创建函数时,加上函数的特性。
方式2:执行SQL:
set global log_bin_trust_function_creators=1;
如果没有报错,就正常执行。
创建有参数的存储函数
创建存储函数,传入员工编号,返回员工名字

调用存储函数

也可以声明变量,传入变量调用

存储函数和存储过程的对比:
存储过程和存储函数的关键字不同,存储过程是procedure,存储函数是function。
调用方式不同,存储过程是通过call 存储过程名(),存储函数是通过select 函数名()。
返回值存储过程可以有0个或多个,存储函数只能是一个。
存储过程一般用于更新数据,存储函数一般用于查询结果为一个值并需要返回时。
存储函数可以放到select语句中,存储过程不行。
存储过程的功能更加强大,可以执行表的操作,创建表、删除表和事务操作等,这些都是存储函数不具备的。

文章转载自何先振,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




