Skip to content
On this page

MySQL 存储过程

存储过程和函数是事先经过编译并存储在数据库的一段SQL语句的集合,调用存储过程和函数可以简化开发人员的很多工作,减少数据和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 存储过程和函数的区别在于函数必须有返回值,而存储过程没有。

存储过程增删改

简单样例及解释:

mysql> delimiter //		-- 结束语分隔符
mysql> CREATE PROCEDURE citycount (IN country CHAR(3), OUT cities INT)		-- in:输入值,需要调用方传入值,out:表示作为输出值,即返回值,inout:既可以当做输出值又可以当做输入值
       BEGIN
         SELECT COUNT(*) INTO cities FROM world.city
         WHERE CountryCode = country;
       END//
mysql> SET @country:='China'
mysql> CALL citycount(@country, @cities);		-- 调用存储过程
mysql> delimiter //		-- 结束语分隔符
mysql> CREATE PROCEDURE citycount (IN country CHAR(3), OUT cities INT)		-- in:输入值,需要调用方传入值,out:表示作为输出值,即返回值,inout:既可以当做输出值又可以当做输入值
       BEGIN
         SELECT COUNT(*) INTO cities FROM world.city
         WHERE CountryCode = country;
       END//
mysql> SET @country:='China'
mysql> CALL citycount(@country, @cities);		-- 调用存储过程

删除存储过程:

mysql> drop procedure [if exists] <Procedure_name>;		-- 存储过程只能一个个删除,不能批量删除
mysql> drop procedure [if exists] <Procedure_name>;		-- 存储过程只能一个个删除,不能批量删除

修改存储过程:

mysql> show create procedure <Procedure_name>;
mysql> show create procedure <Procedure_name>;