/********************************************************************************* * MySQL 存储过程理解 * 说明: * 挺久以前听梦真说过存储过程,不过一直没有去理解到底是什么,今天想到,就查点 * 资料,看一下到底什么。 * * 2017-11-6 深圳 南山平山村 曾剑锋 ********************************************************************************/ 一、参考文章: 1. MySQL存储过程详解 mysql 存储过程 http://blog.sina.com.cn/s/blog_52d20fbf0100ofd5.html 二、格式 MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]]) [特性 ...] 过程体 三、示例: 3.1 code: mysql> DELIMITER // mysql> CREATE PROCEDURE proc1(OUT s int) -> BEGIN -> SELECT COUNT(*) INTO s FROM user; -> END -> // mysql> DELIMITER ; 3.2 注释: (1)这里需要注意的是DELIMITER //和DELIMITER ;两句,DELIMITER是分割符的意思,因为MySQL默认以";"为分隔符,如果我们没有声明分割符,那么编译器会把存储过程当成SQL语句进行处理,则存储过程的编译过程会报错,所以要事先用DELIMITER关键字申明当前段分隔符,这样MySQL才会将";"当做存储过程中的代码,不会执行这些代码,用完了之后要把分隔符还原。 (2)存储过程根据需要可能会有输入、输出、输入输出参数,这里有一个输出参数s,类型是int型,如果有多个参数用","分割开。 (3)过程体的开始与结束使用BEGIN与END进行标识。