最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

MySQL存储过程带in和out参数_MySQL

来源:懂视网 责编:小采 时间:2020-11-09 18:43:02
文档

MySQL存储过程带in和out参数_MySQL

MySQL存储过程带in和out参数_MySQL:bitsCN.com MySQL存储过程带in和out参数 最简单的例子:[html] mysql> DELIMITER $$ mysql> USE test $$ Database changed mysql> DROP PROCEDURE IF EXISTS `sp_add`$$ Query OK, 0 rows affected (0.0
推荐度:
导读MySQL存储过程带in和out参数_MySQL:bitsCN.com MySQL存储过程带in和out参数 最简单的例子:[html] mysql> DELIMITER $$ mysql> USE test $$ Database changed mysql> DROP PROCEDURE IF EXISTS `sp_add`$$ Query OK, 0 rows affected (0.0

bitsCN.com

MySQL存储过程带in和out参数

最简单的例子:

[html] mysql> DELIMITER $$ mysql> USE test $$ Database changed mysql> DROP PROCEDURE IF EXISTS `sp_add`$$ Query OK, 0 rows affected (0.00 sec) mysql> CREATE PROCEDURE sp_add(a INT, b INT,OUT c INT) -> BEGIN -> SET c=a+ b; -> END$$ Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ; 

[html] mysql> CALL sp_add (1,2,@c); Query OK, 0 rows affected (0.00 sec)

mysql> SELECT @c; +------+ | @c | +------+ | 3 | +------+ 1 row in set (0.00 sec)

一个稍微复杂的例子:

[html] mysql> show create table t_BillNo; +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table                     | +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | t_BillNo | CREATE TABLE `t_billno` ( `SaleNo` bigint(20) DEFAULT NULL, `bmh` varchar(20) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC | +----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec) mysql> select * from t_BillNo; +--------+------+ | SaleNo | bmh | +--------+------+ | 1 | 2 | | 4 | 3 | | 4 | 5 | | 7 | 7 | | 12 | 8 | +--------+------+ 5 rows in set (0.00 sec) mysql> mysql> DELIMITER $$ mysql> USE test $$ Database changed mysql> DROP PROCEDURE IF EXISTS `sp_GetMaxNumber`$$ Query OK, 0 rows affected (0.01 sec) DELIMITER $$ USE test $$ DROP PROCEDURE IF EXISTS `sp_GetMaxNumber`$$ CREATE PROCEDURE sp_GetMaxNumber (IN v_bmh VARCHAR(6), OUT v_MaxNo INT) BEGIN START TRANSACTION; UPDATE t_BillNo SET SaleNo = IFNULL(SaleNo,0)+1 WHERE bmh = v_bmh; IF @@error_count = 0 THEN  BEGIN  SELECT Saleno INTO v_MaxNo FROM t_BillNo WHERE bmh = v_bmh;  COMMIT;  END; ELSE  BEGIN  ROLLBACK;  SET v_MaxNo = 0;  END; END IF; END$$ DELIMITER ; mysql> CREATE PROCEDURE sp_GetMaxNumber (IN v_bmh VARCHAR(6), OUT v_MaxNo INT) -> BEGIN -> START TRANSACTION; -> UPDATE t_BillNo -> SET SaleNo = IFNULL(SaleNo,0)+1 -> WHERE bmh = v_bmh; -> IF @@error_count = 0 THEN -> BEGIN -> SELECT Saleno INTO v_MaxNo FROM t_BillNo WHERE bmh = v_bmh; -> COMMIT; -> END; -> ELSE -> BEGIN -> ROLLBACK; -> SET v_MaxNo = 0; -> END; -> END IF; -> END$$ Query OK, 0 rows affected (0.00 sec) mysql> DELIMITER ; mysql> mysql> call sp_GetMaxNumber(8,@v_MaxNo); Query OK, 0 rows affected (0.00 sec) mysql> select @v_MaxNo; +----------+ | @v_MaxNo | +----------+ | 12 | +----------+ 1 row in set (0.00 sec) 


bitsCN.com

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

MySQL存储过程带in和out参数_MySQL

MySQL存储过程带in和out参数_MySQL:bitsCN.com MySQL存储过程带in和out参数 最简单的例子:[html] mysql> DELIMITER $$ mysql> USE test $$ Database changed mysql> DROP PROCEDURE IF EXISTS `sp_add`$$ Query OK, 0 rows affected (0.0
推荐度:
标签: in out 存储
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top