MySQL 存储过程传參之in, out, inout 參数使用方法
2017-07-04 18:52
507 查看
存储过程传參:存储过程的括号中。能够声明參数。 语法是 create procedure p([in/out/inout] 參数名 參数类型 ..)
in :给參数传入值,定义的參数就得到了值
out:模式定义的參数仅仅能在过程体内部赋值。表示该參数能够将某个值传递回调用他的过程(在存储过程内部。该參数初始值为 null,不管调用者是否给存储过程參数设置值)
inout:调用者还能够通过 inout 參数传递值给存储过程,也能够从存储过程内部传值给调用者
假设只想把数据传给 MySQL 存储过程,那就使用“in” 类型參数。 假设只从 MySQL 存储过程返回值,那就使用“out” 类型參数; 假设须要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型參数。 MySQL 存储过程參数假设不显式指定"in"、"out"、"inout",则默觉得"in"。
实例一:存储过程传參 in
实例二:存储过程传參 out
实例三:存储过程传參 inout
假设只想把数据传给 MySQL 存储过程,那就使用“in” 类型參数。 假设只从 MySQL 存储过程返回值,那就使用“out” 类型參数; 假设须要把数据传给 MySQL 存储过程,还要经过一些计算后再传回给我们,此时,要使用“inout” 类型參数。 MySQL 存储过程參数假设不显式指定"in"、"out"、"inout",则默觉得"in"。
实例一:存储过程传參 in
DELIMITER $$ CREATE PROCEDURE p1(IN num INT) BEGIN DECLARE i INT DEFAULT 0; DECLARE total INT DEFAULT 0; WHILE i<=num DO SET total := i + total; SET i := i+1; END WHILE; SELECT total; END$$
实例二:存储过程传參 out
CREATE PROCEDURE p2(OUT num INT) BEGIN SELECT num AS num_1; IF (num IS NOT NULL) THEN SET num = num + 1; SELECT num AS num_2; ELSE SELECT 1 INTO num; END IF; SELECT num AS num_3; END$$ SET @num = 10$$ CALL p2(@num)$$ SELECT @num AS num_out$$
实例三:存储过程传參 inout
CREATE PROCEDURE p3(INOUT age INT) BEGIN SET age := age + 20; END$$ set @currage =18$$ call p3(@currage)$$ select @currage$$
相关文章推荐
- MySQL的FIND_IN_SET函数使用方法
- asp.net调用mysql 存储过程 带 out 返回值,返回刚插入数据库中的自增的ID,LAST_INSERT_ID() 的使用
- mysql 的 find_in_set函数使用方法
- mysql 的 find_in_set函数使用方法
- mysql 的 find_in_set函数使用方法
- FPGA中inout端口使用方法总结
- mysql 的 find_in_set函数使用方法
- 正确使用MySQL JDBC setFetchSize() setMaxRows()方法解决JDBC处理大结果集 java.lang.OutOfMemoryError: Java heap space
- mysql 的 find_in_set函数使用方法
- MySQL 的 find_in_set函数使用方法
- MySQL的FIND_IN_SET函数使用方法分享
- 看到某tool,使用方法是./geniatagger -nt < IN file > OUT file, 需要注意
- 【mysql】mysql存储过程in、out、inout参数使用
- mysql存储过程 OUT or INOUT argument 3 for routine
- mysql的FIND_IN_SET函数使用方法
- MySQL的FIND_IN_SET函数使用方法
- Mysql中的find_in_set的使用方法介绍
- Mysql中的find_in_set的使用方法介绍
- MySQL中存储过程+事件的使用方法
- mysql 的 find_in_set函数使用方法