(1) 存储过程创建语法:
CREATE PROCEDURE sp_name ([proc_parameter])
[characteristic...] routine_body
(2) 函数创建语法:
CREATE FUNCTION sp_name ([func_parameter])
RETURNS type
[characteristic ...] routine_body
可以使用的参数类型:
[IN | OUT | ONOUT] param_name_type
调用过程的语法:
CALL sp_name([parameter[,...]])
注意:允许在MySQL的存储过程和函数中执行commit操作(确认之前的修改)和回滚操作(放弃之前的修改)
delimiter $$
CREATE PROCEDURE film_in_stock(
IN p_filml_id INT,
IN p_store_id INT,
OUT p_film_count INT)
READS SQL DATA
BEGIN
select inventory_id
from inventory
where film_id=p_film_id
AND store_id = p_store_id
AND inventory_in_stock(invertory_id)
SELECT FOUND_ROWS() INTO p_film_count;
END $$
DELIMITER ;
使用:
CALL film_in_stock(2,2,@a)
select @a;
注:
通过“DELIMITER $$"命令将语句的结束符从“;”修改为其他符号。