加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL存储过程解析

发布时间:2017-02-21 04:34:27 所属栏目:MySql教程 来源:站长网
导读:副标题#e# 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(StoredProcedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有

(3). 参数

MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:

CREATEPROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])

IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值

OUT 输出参数:该值可在存储过程内部被改变,并可返回

INOUT 输入输出参数:调用时指定,并且可被改变和返回

Ⅰ.IN参数例子

创建:

mysql > DELIMITER //

mysql > CREATE PROCEDURE demo_in_parameter(IN p_in int)

-> BEGIN

-> SELECT p_in;

-> SET p_in=2;

-> SELECT p_in;

-> END;

-> //

mysql > DELIMITER ;

执行结果:

mysql > SET @p_in=1;

mysql > CALL demo_in_parameter(@p_in);

+------+

| p_in |

+------+

|   1  |

+------+

+------+

| p_in |

+------+

|   2  |

+------+

mysql> SELECT @p_in;

+-------+

| @p_in |

+-------+

|  1    |

+-------+

以上可以看出,p_in虽然在存储过程中被修改,但并不影响@p_id的值

Ⅱ.OUT参数例子

创建:

mysql > DELIMITER //

mysql > CREATE PROCEDURE demo_out_parameter(OUT p_out int)

-> BEGIN

-> SELECT p_out;

-> SET p_out=2;

-> SELECT p_out;

-> END;

-> //

mysql > DELIMITER ;

执行结果:

mysql > SET @p_out=1;

mysql > CALL sp_demo_out_parameter(@p_out);

+-------+

| p_out |

+-------+

| NULL  |

+-------+

+-------+

| p_out |

+-------+

|   2   |

+-------+

mysql> SELECT @p_out;

+-------+

| p_out |

+-------+

|   2   |

+-------+

Ⅲ.INOUT参数例子

创建:

mysql > DELIMITER //

mysql > CREATE PROCEDURE demo_inout_parameter(INOUT p_inout int)

-> BEGIN

-> SELECT p_inout;

-> SET p_inout=2;

-> SELECT p_inout;

-> END;

-> //

mysql > DELIMITER ;

执行结果:

mysql > SET @p_inout=1;

mysql > CALL demo_inout_parameter(@p_inout) ;

+---------+

| p_inout |

+---------+

|    1    |

+---------+

+---------+

| p_inout |

+---------+

|    2    |

+---------+

mysql > SELECT @p_inout;

+----------+

| @p_inout |

+----------+

|    2     |

+----------+

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读