本文中自定义函数和存储过程基于Mysql + Navicat实现,这与SQL SERVER 中实现有一些区别。
在Mysql + Navicat 中自定义存储过程,不需要写存储过程头部,直接写主体即可。并在相应地方设置参数,注意存储过程没有返回类值。
最后保存该存储过程时,给该存储过程命名,即为过程名。
自定义函数与自定义存储过程相似,但是,函数有返回值。
Mysql + Navicat 中自定义存储过程:
Mysql + Navicat 中自定义函数:
个人建议:新建“查询”,将完整的函数体或者存储过程写出来,再运行。这样更加方便和直观。
新建“查询”,再实现存储过程的例子:
新建“查询”,再实现函数的例子:
具体代码如下,并在Mysql + Navicat上测试通过:
(1)自定义存储过程
delimiter //
DROP PROCEDURE if EXISTS GetMemberNum;
CREATE PROCEDURE GetMemberNum (OUT memberNum INT)
BEGIN
SELECT COUNT(*) INTO memberNum FROM memberdetails;
END
//
delimiter ;
CALL GetMemberNum(@memberNum);
SELECT @memberNum;
(2)自定义函数
delimiter //
DROP FUNCTION IF EXISTS PrintString;
CREATE FUNCTION PrintString (inputStr CHAR(20)) RETURNS CHAR(50)
RETURN CONCAT('Welcome to ', inputStr,'!');
//
delimiter ;
SELECT PrintString('MIPAV');