mysql 存储过程调用实例
来源:互联网 发布:淘宝好评返现是真的吗 编辑:程序博客网 时间:2024/06/13 03:01
MySQL存储过程带in和out参数
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 ;
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)
一个稍微复杂的例子:
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)
0 0
- mysql 存储过程调用实例
- 调用MYSQL存储过程实例
- 调用MYSQL存储过程实例
- 调用MYSQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MySQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MySQL存储过程实例
- PHP调用MYSQL存储过程实例
- PHP调用MYSQL存储过程实例
- JAVA调用MYSQL存储过程 实例
- Mysql存储过程实例
- MySQL存储过程实例
- Mysql存储过程实例
- spring3 mvc Controller
- [Android] ListView中getView的原理+如何在ListView中放置多个item
- 欢迎使用CSDN-markdown编辑器
- mybatis 分页拦截器,经网上资料修改可用
- WireShark网络抓包工具(捕捉过滤器和显示过滤器语法)
- mysql 存储过程调用实例
- Python实现桶排序
- 逆向代理服务器(Reverse Proxy)原理及用途
- 16_采用SharedPreferences保存用户偏好设置参数
- foreach循环
- IIS 应用程序池和站点的导入导出
- AspectJ切入点语法详解
- JSch:纯JAVA实现远程执行SSH2主机的SHELL命令
- linux下c语言获取本机ip地址