用call和你过程名以及一个括号,括号里面根据需要,加入参数,参数包括输入参数、输出参数、输入输出参数。具体的调用方法可以参看上面的例子。
存储过程是通过 CALL 语向进行调用的,语法如下:
CALL sp_name ( [ parameter [ , ... ] ] )
CALL 语句调用一个先前用 CREATE PROCEDURE 创建的存储过程,其中 sp_name 为存储过程的参数。
【例】 定义名为 Countproc1 的存储过程,然后调用这个存储过程。
定义存储过程的代码如下:
mysql> DELIMITER //
mysql> CREATE PROCEDURE CountProc1 (IN sid INT, OUT num INT )
-> BEGIN
-> SELECT COUNT(*) INTO num FROM fruits WHERE s_id = sid;
-> END //
Query OK, 0 rows affected (0.42 sec)
mysql> DELIMITER ;
【注】COUNT(*) 函数返回在给定的选择中被选的行数。
调用存储过程的代码如下:
mysql> CALL CountProc1 ( 101 , @num );
Query OK, 1 row affected (0.39 sec)
查看返回结果:
mysql> SELECT @num;
+------+
| @num |
+------+
| 3 |
+------+
2. 调用存储函数
在 MySQL 中,存储函数的使用方法与 MySQL 内部函数的使用方法是一样的。换言之,用户自己定义的存储函数与 MySQL 的内部函数是一个性质的。 区别在于,存储函数是用户自己定义的,而内部函数是 MySQL 的开发者定义的。
【例】 定义存储函数 CountProc2, 然后调用这个函数。
定义存储函数的代码如下:
mysql> DELIMITER //
mysql> CREATE FUNCTION CountProc2 ( sid INT )
-> RETURNS INT
-> BEGIN
-> RETURN ( SELECT COUNT(*) FROM fruits WHERE s_id = sid );
-> END //
Query OK, 0 rows affected (0.10 sec)
mysql> DELIMITER ;
调用存储函数的代码如下:
mysql> SELECT CountProc2(101);
+-----------------+
| CountProc2(101) |
+-----------------+
| 3 |
+-----------------+