MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。存储过程就是数据库 SQL 语言层面的代码封装与重用。
一、使用存储过程注意事项
1、存储过程程序中";"和mysql客户端解释用的“;”冲突。
因为存储过程是SQL 语言层面的代码封装,相当于是sql语义的一段程序代码块,而代码中往往含有“;”作为语句结束的标记,语句之间的分隔符,存储过程程序代码中的“;”会和mysql客户端解释的“;”有语义冲突;mysql本身因此在定义存储过程时,
使用DELIMITER “$$”命令(或者DELIMITER ||命令)将语句的结束符号从分号;临时改为两个$$
,使得过程体中使用的分号被直接传递到服务器,而不会被客户端(如mysql)解释。
2、存储过程格式
存储过程体包含了在过程调用时必须执行的语句,例如:dml、ddl语句,if-then-else和while-do语句、声明变量的declare语句等,存储过程体格式:以begin开始,以end结束(可嵌套)
3、结束标记
每个嵌套块及其中的每条语句,必须以分号结束,表示过程体结束的begin-end块(又叫做复合语句compound statement)