美洲杯波胆_美洲杯波胆赔率
做最好的网站
来自 计算机教程 2020-04-25 15:34 的文章
当前位置: 美洲杯波胆 > 计算机教程 > 正文

mysql数据存储过程参数实例详解

OUT参数只用来从过程传回信息。 MySQL存储过程"out"参数:从存储过程内部传值给调用者。 该参数初始值为 null,无论调用者是否给存储过程参数设置值。

以上就是本文关于mysql数据存储过程参数实例详解的全部内容,希望对大家了解MySQL有所帮助。感兴趣的朋友可以继续参阅本站:解析MySQL中存储时间日期类型的选择问题、MySQL 声明变量及存储过程分析等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

IN参数只用来向过程传递信息,为默认值。

MySQL 存储过程参数有三种类型:in、out、inout。它们各有什么作用和特点呢?

out参数的使用

男篮世界杯波胆,可以看出,虽然我们设置了用户定义变量 @id 为 10,传递 @id 给存储过程后,在存储过程内部,id 的初始值总是 null。最后 id 值传回给调用者。

以上所述是小编给大家介绍的MySql存储过程参数的入门使用详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

drop procedure if exists pr_param_in;create procedure pr_param_in( in id int -- in 类型的 MySQL 存储过程参数)begin if (id is not null) then set id = id   1; end if; select id as id_inner;end;

set @id = 10;call pr_param_in(@id);select @id as id_out;

mysql call pr_param_in(@id); ---------- | id_inner | ---------- | 11 | ---------- mysql select @id as id_out; -------- | id_out | -------- | 10 | -------- 
DELIMITER ;; CREATE PROCEDURE name_out(IN `one` INT , IN two INT ,OUT shu INT) -- out 输出参数 的使用BEGIN SET shu=`one` two; -- 直接 两个输入参数 相加 赋值给 输出参数 set 变量名 是赋值的意思 -- set 赋值 在当前存储过程中 有效 比如 可以使用 select shu ; -- set @赋值 在当前连接客服端中有效 END ;; CALL name_out(3,3,@shuchu);SELECT @shuchu AS 输出参数; -- 在调用存储过程的时候可以 定义一个 @参数 来接收 输出参数 也就是 返回值

通过以上例子:如果仅仅想把数据传给 MySQL 存储过程,那就使用“in” 类型参数;如果仅仅从 MySQL 存储过程返回值,那就使用“out” 类型参数;如果需要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型参数。

-- 存储过程中 in 参数的 使用DELIMITER ;; CREATE PROCEDURE name_in(IN `time` VARCHAR(50)) BEGIN SELECT NOW() ,`time`; END ;;CALL name_in('现在时间'); -- in 是一个形参 你可以 定义 数据类型 调用存储过程的时候 可以给 实参 DELIMITER ;; CREATE PROCEDURE name_in_2(IN `time` VARCHAR(50)) -- set赋值的 使用BEGIN SELECT NOW() ,`time`; END ;;SET @wo='现在时间'; CALL name_in_2(@wo); DELIMITER ;; CREATE PROCEDURE name_in_4(IN `time` VARCHAR(50))-- DECLARE 创建变量的使用BEGINDECLARE `time` DEFAULT 'wo'; -- DECLARE 创建变量的 只在begin-end语句块 有效的 变量 SELECT NOW() ,`time`;-- END ;;-- 可以 使用 DECLARE 在存储过程中 -- 创建和 赋值 set @变量名= 值-- 总结 DECLARE 只在begin-end语句块 有效 set 加@ 是会话变量在 当前连接中 对连接的客户端 是有效的

可以看到:用户变量 @id 传入值为 10,执行存储过程后,在过程内部值为:11,但外部变量值依旧为:10。

存储过程 in参数 的使用

总结

drop procedure if exists pr_param_inout;create procedure pr_param_inout( inout id int)begin select id as id_inner_1; -- id 值为调用者传进来的值 if (id is not null) then set id = id   1; select id as id_inner_2; else select 1 into id; end if; select id as id_inner_3;end;

set @id = 10;call pr_param_inout(@id);select @id as id_out;

mysql set @id = 10;mysqlmysql call pr_param_inout(@id); ------------ | id_inner_1 | ------------ | 10 | ------------  ------------ | id_inner_2 | ------------ | 11 | ------------  ------------ | id_inner_3 | ------------ | 11 | ------------ mysqlmysql select @id as id_out; -------- | id_out | -------- | 11 | -------- 

本文由美洲杯波胆发布于计算机教程,转载请注明出处:mysql数据存储过程参数实例详解

关键词: