以前使用SQL SERVER的时候经常用function,对一些数据的处理比较方便,现在数据库转移到mysql上以后,同样也希望能保留相同的功能,庆幸的是mysql也支持function,现来分享下在mysql中怎样创建function
工具/原料
MySQL
MySQL Workbench
方法/步骤
1 在 MySQL 中创建 function 的写法和 SQL SERVER 还是有区别的,先看一下在 MySQL 中正确的写法是什么样,在这个 function 中目的是返回根据传进年龄参数计算出同龄人有多少,并将结果返回
调用我们刚创建的function,从结果中可以看出我们自定义的function正确执行了,下面来讲讲在MySQL创建function的时候需要注意的事项
DELIMITER的用法就不再多述了,跟在存储过程中的用法一样,我在分享如何创建存储过程中有过描述
此处需要特别注意,传进的参数与数据库字段不能一样,我之前就是因为没注意这里导致function一直不能按照理想的状态执行
在这步我们将参数和数据库字段定义的一样,来看看这样创建的function会返回什么样的值
虽然function也能成功创建,但是在调用的时候发现返回值不是我们想要的那种值,function没有按我们的意愿正常工作,因此还是要特别提醒下:传进的参数与数据库字段不能一样
mysql中定义变量倒是比sql server简单不少,不用声明直接用就可以
修改function的处理方式需要先执行drop,然后在create,直接用alter报错,存储过程也有同样的问题,这里不知道是不是有直接修改的办法我还没查到,欢迎交流