c mysql存储过程 out_MySQL存储过程带in和out参数
实例一:无参的存储过程 复制代码 代码如下: $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!"); mysql_select_db('test',$conn); $sql = " create procedure myproce() begin INSERT INTO user (id, username, sex) VALUES (NUL
MySQL支持IN(传递给存储过程)、OUT(从存储过程传出)、INOUT(对存储过程传入和传出) 所有MySQL变量必须以@开始! 最简单的例子:[html]
mysql> DELIMITER $$ //用delimiter命令来把语句定界符从 ;变为//。这样就允许在程序体用;定界符传递到服务器,而不是被mysql自己来解释。
mysql> USE test $$
Databasechanged
mysql>DROPPROCEDUREIF EXISTS `sp_add`$$
Query OK, 0 rowsaffected (0.00 sec)
mysql>CREATEPROCEDUREsp_add(a INT, b INT,OUTcINT)
->BEGIN
->SETc=a+ b;
->END$$
Query OK, 0 rowsaffected (0.00 sec)
mysql> DELIMITER ;
mysql> CALL sp_add (1,2,@c);
Query OK, 0 rowsaffected (0.00 sec)
mysql> SELECT@c;
+------+
| @c |
+------+
| 3 |
+------+
1 row inset(0.00 sec)
一个稍微复杂的例子:
mysql> show createtablet_BillNo;
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|Table |CreateTable |
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| t_BillNo | CREATETABLE`t_billno` (
`SaleNo`bigint(20)DEFAULTNULL,
`bmh`varchar(20)DEFAULTNULL
) ENGINE=InnoDB DEFAULTCHARSET=utf8 CHECKSUM=1 DELAY_KEY_WRITE=1 ROW_FORMAT=DYNAMIC|
+----------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row inset(0.00 sec)
mysql>select*fromt_BillNo;
+--------+------+
| SaleNo | bmh |
+--------+------+
| 1 | 2 |
| 4 | 3 |
| 4 | 5 |
| 7 | 7 |
| 12 | 8 |
+--------+------+
5rowsinset (0.00 sec)
mysql>
mysql> DELIMITER $$
mysql> USE test $$
Databasechanged
mysql>DROPPROCEDUREIF EXISTS `sp_GetMaxNumber`$$
Query OK, 0 rowsaffected (0.01 sec)
DELIMITER $$
USE test $$
DROPPROCEDUREIF EXISTS `sp_GetMaxNumber`$$
CREATEPROCEDUREsp_GetMaxNumber (INv_bmhVARCHAR(6),OUTv_MaxNoINT)
BEGIN
STARTTRANSACTION;
UPDATEt_BillNo
SETSaleNo = IFNULL(SaleNo,0)+1
WHEREbmh = v_bmh;
IF @@error_count = 0 THEN
BEGIN
SELECTSalenoINTOv_MaxNoFROMt_BillNoWHEREbmh = v_bmh;
COMMIT;
END;
ELSE
BEGIN
ROLLBACK;
SETv_MaxNo = 0;
END;
ENDIF;
END$$
DELIMITER ;
mysql>CREATEPROCEDUREsp_GetMaxNumber (INv_bmhVARCHAR(6),OUTv_MaxNoINT)
->BEGIN
-> START TRANSACTION;
->UPDATEt_BillNo
->SETSaleNo = IFNULL(SaleNo,0)+1
->WHEREbmh = v_bmh;
-> IF @@error_count = 0 THEN
->BEGIN
-> SELECTSalenoINTOv_MaxNoFROMt_BillNoWHEREbmh = v_bmh;
->COMMIT;
->END;
->ELSE
->BEGIN
-> ROLLBACK;
-> SETv_MaxNo = 0;
->END;
->ENDIF;
->END$$
Query OK, 0 rowsaffected (0.00 sec)
mysql> DELIMITER ;
mysql>
mysql> call sp_GetMaxNumber(8,@v_MaxNo);
Query OK, 0 rowsaffected (0.00 sec)
mysql>select@v_MaxNo;
+----------+
| @v_MaxNo |
+----------+
| 12 |
+----------+
1 row inset(0.00 sec)
?
c mysql存储过程 out_MySQL存储过程带in和out参数相关推荐
- C#调用存储过程详解(带返回值、参数输入输出等)
C#调用存储过程详解(带返回值.参数输入输出等) 这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值.参数输入输出等,需要的朋友可以参考下 本文实 ...
- c oracle存储过程返回值,C#调用存储过程详解(带返回值、参数输入输出等)
本文实例讲述了C#调用存储过程的方法.分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @stu ...
- mysql out_mysql存储过程 in out inout
存储过程的好处 存储过程是一组预编译好的sql语句,用来执行某个特定的功能.这样可以省去sql解析.编译.优化的过程,提高了执行效率,同时,在调用的时候只传一个存储过程的名称,而不用传一大堆sql语句 ...
- 什么场景使用mysql的存储过程_mysql存储过程的使用
直入正题吧:首先创建一张 students 表 create tablestudents( idint primary keyauto_increment, ageint, namevarchar(2 ...
- mysql触发器和存储过程_MySql的存储过程和触发器
Mysql的存储过程是类似于其它编程语言中的函数的功能,存储过程内部可以使用顺序循环和转移三种基本程序结构,而且整个存储过程可以接受和返回参数. 创建存储过程(procedure)时,因为其内部有以; ...
- mysql数据库的存储过程不用学吗,MySql数据库之存储过程学习_MySQL
之前在工作中总是听别人提到存储过程,觉得是个很高深的东西,利用工作之余,看了下相关的知识,现将学习知识总结如下,希望可以为刚学习的人提供些许帮助. 开发环境:Navicat For Mysql. My ...
- MySQL学习——操作存储过程
MySQL学习--操作存储过程 摘要:本文主要学习了使用DDL语句操作存储过程的方法. 了解存储过程 是什么 存储过程是一组为了完成特定功能的SQL语句集合. 使用存储过程的目的是将常用或复杂的工作预 ...
- MySQL初级篇——存储过程、存储函数的相关概念及应用举例
文章目录: 1.什么是存储过程? 2.存储过程操作相关SQL 3.存储过程实操SQL 4.存储函数操作相关SQL 5.存储函数实操SQL 6.存储过程.存储函数的优缺点 1.什么是存储过程? 含义:存 ...
- MySql 自定义函数,存储过程,游标的使用
首先整理一下mysql内置的一些函数 MySQL内置函数 一.字符函数 (1)CONCAT()//字符连接 (2)CONCAT_WS()//使用指定的分隔符进行字符连接 (3)FORMAT()//数字 ...
最新文章
- 2.1 mac下多版本jdk的安装和管理
- java什么时候用list_Java快问快答:用 ArrayList 还是 LinkedList?
- 如何预防服务器宕机:防患于未然
- js 闭包的用法详解
- 最优化课堂笔记06-无约束多维非线性规划方法(续)
- python入口函数的作用_python之函数中参数的作用域
- VBA IsNull 应用 - 捕获错误并查找未填充的值
- Javascript 创建书签小工具 (bilibili视频下载为例)
- TRAC 整合已有的SVN目录
- Java 使用BigDecimal类处理高精度计算
- WebForm控件多字段绑定
- [2018.09.08 T1] 炉石
- 科学家做一个实验,我就得胖三斤?
- 电脑文件夹如何有效分类?
- 解决windows 10在联网时依旧无法安装3DMAX2014
- Python中的盆地跳跃(Basin Hopping)优化
- SAP ABAP BDC录屏 数据导入和检验-实例
- int... num什么意思?
- 关闭和开启笔记本自带键盘。
- java 判断当前月天数