首页 > 数据库 > mysql教程 > MySQL带参数的存储过程小例子_MySQL

MySQL带参数的存储过程小例子_MySQL

WBOY
发布: 2016-06-01 13:37:35
原创
884 人浏览过

bitsCN.com

MySQL带参数的存储过程小例子

 

存储过程P_GET_CLASS_NAME是根据输入的班级号判断班级名称

存储过程P_INSERT_STUDENT是接收输入的学生信息,最终将信息插入学生表。

[sql] 

DROP PROCEDURE IF EXISTS `P_GET_CLASS_NAME`;  

CREATE PROCEDURE P_GET_CLASS_NAME(IN ID int,OUT NAME VARCHAR(50))  

BEGIN  

    IF(ID = 1) THEN   

          SET NAME = '一班';  

    END IF;  

    IF(ID = 2) THEN   

          SET NAME = '二班';  

    END IF;  

END;  

  

DROP PROCEDURE IF EXISTS `P_INSERT_STUDENT`;  

CREATE PROCEDURE P_INSERT_STUDENT(IN ID INT,IN NAME VARCHAR(10),IN CLASSNO INT,IN BIRTH DATETIME)  

BEGIN  

     SET @ID = ID;  

     SET @NAME = NAME;  

     SET @CLASSNO = CLASSNO;  

     SET @BIRTH = BIRTH;  

     SET @CLASSNAME = NULL;  

     CALL P_GET_CLASS_NAME(@CLASSNO,@CLASSNAME);  

       

     SET @insertSql = CONCAT('INSERT INTO TBL_STUDENT VALUES(?,?,?,?)');  

     PREPARE stmtinsert FROM @insertSql;  

     EXECUTE stmtinsert USING @ID,@NAME,@CLASSNAME,@BIRTH;  

     DEALLOCATE PREPARE stmtinsert;  

END;  

  

CALL P_INSERT_STUDENT(1,'徐越',1,'2012-10-01 10:20:01');  

 

在第二个存储过程中

①利用SET声明了参数,调用了第一个存储过程

②在第一个存储过程中的NAME参数是输出参数,所以@CLASSNAME这个参数在调用完第一个过程后就被附值

③最终利用CONCAT拼接SQL语句并传入参数执行SQL语句

 

CALL P_INSERT_STUDENT(1,'徐越',1,'2012-10-01 10:20:01');调用存储过程

 

bitsCN.com
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板