1.参数
(1)IN:该参数的值必须在调用存储过程时指定。
(2)OUT:该参数的值可以被存储过程指定,并且可以返回。
(3)INOUT::该参数的值调用时指定,并且可以被改变和返回。
2.无参数:CREATE PROCEDURE sp1() SELECT VERSION();
CALL sp1; //也可带()
优化:创建一个过程体来实现版本的调用。
3.有参数:
CREATE PROCEDURE removeUserById(IN id INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id =id l
END
//
注:创建一个过程体removeUserById,用于删除users相对应id
调用:CALL removeUserById(3)
4.DELETE PROCEDURE removeUserById; 删除存储过程
5.CREATE PROCEDURE removeUserAndReturnUserNums(IN p_id INT UNSIGNED,OUT userNums INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id =p_id;
SELECT COUNT(id) FROM users INTO usetNums //INTO表示赋值
//
注:IN为输入值,OUT为输出值,此过程体的含义为删除并返回。
调用:CALL removeUserAndReturnUserNums(27,@nums);
OUT是过程传过来的值,只能传变量,为用户变量。
用SELECT @nums 来返回值。
6.SELECT ROW_COUNT() 返回被更新的记录总数
7.注意:
(1)需要通过delimiter语句修改定界符
(2)函数体或过程体有多个语句的时候,需包含在BEGIN-END过程中
(3)存储过程用call来调用。
(1)IN:该参数的值必须在调用存储过程时指定。
(2)OUT:该参数的值可以被存储过程指定,并且可以返回。
(3)INOUT::该参数的值调用时指定,并且可以被改变和返回。
2.无参数:CREATE PROCEDURE sp1() SELECT VERSION();
CALL sp1; //也可带()
优化:创建一个过程体来实现版本的调用。
3.有参数:
CREATE PROCEDURE removeUserById(IN id INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id =id l
END
//
注:创建一个过程体removeUserById,用于删除users相对应id
调用:CALL removeUserById(3)
4.DELETE PROCEDURE removeUserById; 删除存储过程
5.CREATE PROCEDURE removeUserAndReturnUserNums(IN p_id INT UNSIGNED,OUT userNums INT UNSIGNED)
BEGIN
DELETE FROM users WHERE id =p_id;
SELECT COUNT(id) FROM users INTO usetNums //INTO表示赋值
//
注:IN为输入值,OUT为输出值,此过程体的含义为删除并返回。
调用:CALL removeUserAndReturnUserNums(27,@nums);
OUT是过程传过来的值,只能传变量,为用户变量。
用SELECT @nums 来返回值。
6.SELECT ROW_COUNT() 返回被更新的记录总数
7.注意:
(1)需要通过delimiter语句修改定界符
(2)函数体或过程体有多个语句的时候,需包含在BEGIN-END过程中
(3)存储过程用call来调用。