mysql,如何定义和使用数据库专用函数function?
发布于 作者:苏南大叔 来源:程序如此灵动~

苏南大叔在本文中将要描述如何定义和使用mysql
数据库专用的函数。这些函数定义后,是和数据表同级别的存在。下次链接数据库之后,还是可以继续使用的。

大家好,这里是苏南大叔的“程序如此灵动”博客,主要记录苏南大叔的代码编程所学所想。本文描述mysql
数据库专用自定义函数的创建和使用方式。测试环境:win10
,mysql@5.7.26
。
背景文章
如果您使用mysql
官方客户端在命令行下执行相关语句的话,那么,您可能会用到分隔符delimiter
的用法。参考文章:
切换分隔符为$
:
恢复分隔符为分号的方法为:

如果使用的是第三方客户端,这个切换分隔符的操作是大概率不用的。强制输入的话,也极大概率会被识别成错误。
官方客户端里面,只有输入这个分隔符,才会执行相关语句。而可视化的非官方客户端里面,因为是先输入整体语句,再通过操作按钮才会执行全部语句,所以并没有这个困扰!
数据集
这里还是采用前几篇文章里面的数据集:
创建自定义函数和调用
语法如下:
注意:语法中是returns
,多个s
字样。
这个自定义函数,必须有返回值有返回语句,返回个空字符串也行。但是必须要返回个值,否则不符合语法。
报错信息如下:

自定义函数,有且只有一个返回值。

调用方式
调用的方式是:
测试用例一(没参数)
下面的测试用例里面,在第三方客户端里执行,所以没有考虑分隔符切换的问题。
求当前共有几名用户:

测试用例二(传递参数)
求用户名对应的用户id:

查看定义

可以看到对get_uid
的函数体查询中,是多了一些字样(DEFINER=
root@
localhost`)的。

删除定义
测试用例语句是:
相关文章
- https://newsn.net/say/mysql-delimiter.html
- https://newsn.net/say/mysql-left-join.html
- https://newsn.net/say/mysql-inner-join.html
- https://newsn.net/say/mysql-using.html
总结
更多苏南大叔写的mysql
相关文章,请点击下面的链接查看:


