您的位置:首页 > 数据库 > MySQL

mysql 存储过程和函数的区别

2017-07-10 10:47 525 查看
1.函数必须指定返回值,且参数默认为IN类型。

2.存储过程没返回值,参数可以是 IN,OUT,IN OUT类型,有的人可能会理解成OUT 也算是返回值。

3.调用方式:函数 select my_fun() ;过程 call my_pro( ) ;

DEMO
DELIMITER $$
DROP FUNCTION IF EXISTS my_fun$$
CREATE
FUNCTION my_fun(a INT(2),b INT(2))
RETURNS INT(4)
BEGIN
DECLARE sum_ INT(2) DEFAULT 0;
SET sum_ = a + b;
RETURN sum_;
END$$
DELIMITER ;
DELIMITER $$
DROP PROCEDURE IF EXISTS my_pro$$
CREATE
PROCEDURE my_pro(IN a INT(2),IN b INT(2) ,OUT c INT(2))
BEGIN
SET c = a + b;
END$$
DELIMITER ;
调用
mysql


调用

mysql> call my_pro(1,2,@c);
Query OK, 0 rows affected (0.00 sec)

mysql> select @c;
+------+
| @c   |
+------+
|    3 |
+------+
1 row in set (0.00 sec)

mysql> select my_fun(1,2);
+-------------+
| my_fun(1,2) |
+-------------+
|           3 |
+-------------+
1 row in set (0.00 sec)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: