DELIMITER$$mysql>USEtest$$Databasechangedmysql>DROPPROCEDUREIFEXISTS`sp_add`$$QueryOK,0rowsaffected(0.00sec)mysql>CREATEPROCEDUREsp_add(aINT,bINT,OUTcINT)->BEGIN->SETc=a+b;->END$$QueryOK,0rowsa" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

MySQL存儲過程帶in和out參數

系統 2163 0

  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)

?

MySQL存儲過程帶in和out參數


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 来凤县| 彰化市| 平定县| 上虞市| 历史| 巴东县| 辛集市| 裕民县| 汕尾市| 广州市| 鄱阳县| 澳门| 宁强县| 洛川县| 盐边县| 江华| 乌拉特前旗| 噶尔县| 扎鲁特旗| 乐昌市| 吉水县| 罗山县| 拉萨市| 健康| 石首市| 湘潭县| 四子王旗| 安徽省| 六盘水市| 湖州市| 澎湖县| 南华县| 泽库县| 余干县| 佳木斯市| 类乌齐县| 历史| 大英县| 荆门市| 女性| 濮阳市|