CREATE PROCEDURE sp_name ([proc_parameter[,…]]) routine_body
proc_parameter: - [IN|OUT|INOUT] param_name type
参数 - IN,表示给参数的值必须在调用存储过程时指定 - OUT,表示该参数的额值可以被存储过程改变,并可以返回 - INOUT,表示该参数的调用时指定,并且可以被改变和返回
无参过程的调用可以不写小括号
# 创建无参数的储存过程 mysql> CREATE PROCEDURE sp1() SELECT VERSION(); # 调用无参数的储存过程可以不加括号 mysql> CALL sp1; mysql> CALL sp1(); +------------+ | VERSION() | +------------+ | 5.7.18-log | +------------+ # 创建IN类型参数 mysql> CREATE PROCEDURE removeUserById(IN p_id INT UNSIGNED) -> BEGIN -> DELETE FROM user WHERE id = p_id ; -> END -> // mysql> CALL removeUserById(9)//DROP PROCEDURE [IF EXISTS] sp_name