目录:
PROCEDURE,事务,一个存储过程,实际上就是在服务器端直接在数据库中编写一段代码作运算,在服务器端进行高效的运算,运算结果直接返还给客户端。
它和FUNCTION一个明显的不同点是,FUNCTION最后会有RETURN语句,返回运算结果,PROCEDURE不允许有RETURN语句的,但是可以在参数表中指定返还数据。
PROCEDURE编译完成后会存储在数据库中,需要调用的时候使用CALL语句对事务或者函数进行调用。编写PROCEDURE不仅可以避免重复编码,同时还可以提高计算效率。
二、CREATE PROCEDURE基本语法:
下面不妨先看一看CREATE PROCEDURE以及CREATE FUNCTION的语法:
1 CREATE 2 [DEFINER = { user | CURRENT_USER }] 3 PROCEDURE sp_name ([proc_parameter[,...]]) 4 [characteristic ...] routine_body 5 CREATE 6 [DEFINER = { user | CURRENT_USER }] 7 FUNCTION sp_name ([func_parameter[,...]]) 8 RETURNS type 9 [characteristic ...] routine_body 10 proc_parameter: 11 [ IN | OUT | INOUT ] param_name type 12 func_parameter: 13 param_name type 14 type: 15 Any valid MySQL data type 16 characteristic: 17 COMMENT 'string' 18 | LANGUAGE SQL 19 | [NOT] DETERMINISTIC 20 | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } 21 | SQL SECURITY { DEFINER | INVOKER } 22 routine_body: 23 Valid SQL routine statement