zoukankan      html  css  js  c++  java
  • MySQL存储过程带in和out参数

      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)</p><p>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 | www.sd-ju.com

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

      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; www.js-yg.com

      -> 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)

     

  • 相关阅读:
    齐文词根词缀---3.12、ced-走
    感悟总结---2104012起(文字收集)
    齐文词根词缀---3.11、log说话
    齐文词根词缀---3.10、cata-向下(和cat,cad,cid,cis是一样的)
    齐文词根词缀---3.9、carn-肉、肉欲
    齐文词根词缀---3.8、capit-头(cap帽子)
    齐文词根词缀---3.7、-tect盖子
    齐文词根词缀---3.6、cant-唱、说
    齐文词根词缀---3.5、cad- / cas- 落下(【音变t-d-s】)
    CURL 发送POST请求
  • 原文地址:https://www.cnblogs.com/haosola/p/3263885.html
Copyright © 2011-2022 走看看