时间:2021-07-01 10:21:17 帮助过:2人阅读
5、Mysql存储过程
(1)创建存储过程
CREATE PROCEDURE P_NAME() BEGIN ...... END
(2)调用存储过程
CALL P_NAME() // 存储过程名称(P_NAME)后面必须添加括号,即使没有参数
(3)删除存储过程
DROP PROCEDURE P_NAME; //不能在一个存储过程中删除另一个存储古城,只能调用另一个存储过程
(4)查看数据库里全部的存储过程
SHOW PROCEDURE STATUS
(5)查看单个存储过程的详细信息
SHOW CREATE PROCEDURE P_NAME
6、创建存储过程详解
(1)简单的无参存储过程(查询所有的结果集)
DROP PROCEDURE IF EXISTS P_user; CREATE PROCEDURE P_user() BEGIN SELECT * FROM t_user; END;
调用:CALL P_user();
(2)带参存储过程
MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
a.IN参数
/*创建存储过程*/ DROP PROCEDURE IF EXISTS P_user; CREATE PROCEDURE P_user(IN t_id VARCHAR(10)) BEGIN SELECT * FROM t_user WHERE ID = t_id; END; /*调用存储过程*/ CALL P_user(1);View Code
b.OUT参数
/*创建存储过程*/ DROP PROCEDURE IF EXISTS P_user; CREATE PROCEDURE P_user(IN t_id VARCHAR(10),OUT uCount INT) BEGIN SELECT COUNT(*) FROM t_user WHERE ID = t_id; END; /*调用存储过程*/ CALL P_user(4,@p_num); SLEEP(@p_num)View Code
c.INOUT参数(参数是入参也是出参)
/*创建存储过程*/ DROP PROCEDURE IF EXISTS P_user; CREATE PROCEDURE P_user(INOUT t_id VARCHAR(10)) BEGIN SELECT COUNT(*) FROM t_user WHERE ID = t_id; END; /*调用存储过程*/ SET @p_num = 4; CALL P_user(@p_num); SELECT @p_num;View Code