mysql select call_MySQL的SQL语句 - 数据操作语句(1)- CALL 语句
CALL 语句
1. CALL sp_name([parameter[,...]])
1. CALL sp_name[()]
CALL 语句调用 CREATE PROCEDURE 定义的存储过程。
如果存储过程不带参数,调用时可以在不带括号。也就是说,CALL p() 和 CALL p 是等价的。
CALL 可以使用声明为 OUT 或 INOUT 的参数将值回传给它的调用者。当过程返回时,客户端程序还可以获得例程中执行的最后一条语句所影响的行数: 在 SQL 级别,调用 ROW_COUNT() 函数;在 C API 中,调用 mysql_affected_rows() 函数。
要使用 OUT 或 INOUT 参数从过程中获取值,请通过用户变量传递该参数,然后在过程返回后检查变量的值。(如果从另一个存储过程或函数中调用该过程,还可以将例程参数或本地例程变量作为 IN 或 INOUT 参数传递。)对于 INOUT 参数,请在将其传递给过程之前对其值进行初始化。下面的过程有一个 OUT 参数,该过程将其设置为当前服务器版本,以及一个 INOUT 值,该过程将其当前值递增 1:
1. CREATE PROCEDURE p (OUT ver_param VARCHAR(25), INOUT incr_param INT)
2. BEGIN
3. # Set value of OUT parameter
4. SELECT VERSION() INTO ver_param;
5. # Increment value of INOUT parameter
6. SET incr_param = incr_param + 1;
7. END;
在调用过程之前,初始化作为 INOUT 参数传递的变量。调用过程后,两个变量的值将被设置或修改:
1. mysql> SET @increment = 10;
2. mysql> CALL p(@version, @increment);
3. mysql> SELECT @version, @increment;
4. +--------------------+------------+
5. | @version | @increment |
6. +--------------------+------------+
7. | 8.0.3-rc-debug-log | 11 |
8. +--------------------+------------+
在用于 PREPARE 和 EXECUTE 的预编译 CALL 语句中,占位符可以用于 IN 参数、OUT 和 INOUT 参数。这些类型的参数可以使用如下:
1. mysql> SET @increment = 10;
2. mysql> PREPARE s FROM 'CALL p(?, ?)';
3. mysql> EXECUTE s USING @version, @increment;
4. mysql> SELECT @version, @increment;
5. +--------------------+------------+
6. | @version | @increment |
7. +--------------------+------------+
8. | 8.0.3-rc-debug-log | 11 |
9. +--------------------+------------+
要编写使用 CALL SQL 语句执行产生结果集的存储过程的 C 程序,必须启用 CLIENT_MULTI_RESULTS 标志。这是因为除了过程中执行的语句可能返回的结果集之外,每个 CALL 还返回一个结果来指示调用状态。如果使用 CALL 执行任何包含预编译语句的存储过程,也必须启用 CLIENT_MULTI_RESULTS。在加载过程中不能确定这些语句是否会产生结果集,因此有必要假定它们会产生结果集。
可以在调用 mysql_real_connect() 时显式地传递 CLIENT_MULTI_RESULTS 标志本身,或者隐式传递CLIENT_MULTI_STATEMENTS 来启用 CLIENT_MULTI_RESULTS。默认情况下 CLIENT_MULTI_RESULTS 是启用的。
要处理使用 mysql_query() 或 mysql_real_query() 执行的 CALL 语句的结果,可以使用一个调用 mysql_next_result() 的循环来确定是否有更多的结果。
C 程序可以使用预编译语句接口来执行 CALL 语句并访问 OUT 和 INOUT 参数。这是通过使用循环处理 CALL 语句的结果来完成的,该循环调用 mysql_stmt_next_result() 来确定是否有更多的结果。提供 MySQL 接口的语言可以使用预编译的 CALL 语句直接检索 OUT 和 INOUT 过程参数。
存储程序引用的对象的元数据更改将被检测到,并在下次执行程序时自动重新解析受影响的语句。
mysql select call_MySQL的SQL语句 - 数据操作语句(1)- CALL 语句相关推荐
- mysql load xml_MySQL的SQL语句 - 数据操作语句(10)- LOAD XML 语句
LOAD XML 语句 1. LOAD XML 2. [LOW_PRIORITY | CONCURRENT] [LOCAL] 3. INFILE 'file_name' 4. [REPLACE | I ...
- mysql修改的值子查询语句_MySQL的SQL语句 - 数据操作语句(13)- 子查询(13)
子查询的限制 ● 通常,不能在子查询中修改表并从同一表中进行选择.例如,此限制适用于以下形式的语法: 1. DELETE FROM t WHERE ... (SELECT ... FROM t ... ...
- mysql的values使用_MySQL的SQL语句 - 数据操作语句(16)- VALUES 语句
VALUES 语句 VALUES 是 MySQL 8.0.19 中引入的一个 DML 语句,它以表的形式返回一个或多个行的集合.换句话说,它是一个表值构造器,也可以作为独立的 SQL 语句来运行. 1 ...
- mysql select count 5万条数据很慢_Mysql注入总结
1 0X00 简介 本文是关于Mysql注入相关知识的总结,Mysql利用方式较为灵活,这里总结了一些常用的姿势. 1 0x01 union select注入 http://127.0.0.1/?id ...
- mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)
在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...
- mysql创建销售表_MySQL创建数据表(CREATE TABLE语句)
在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...
- SQL中数据操作语言 (DML) 和数据定义语言 (DDL)
可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法.但是 SQL 语言也包含用于更新.插入和删除记录的语法. ...
- mysql遍历resultset_java中ResultSet遍历数据操作
1.查找数据库中表的列名 String sql = "select *from tblmetadatainfo"; ResultSet rs = MySqlHelper.execu ...
- php实现sql server数据导入到mysql数据库_php实现SQL Server数据导入Mysql数据库(示例)...
php将mssql的数据导入到mysql数据库中,代码: 代码示例: //连接SQL server数据库 $conn=mssql_connect("localhost"," ...
最新文章
- spark运行NLP
- 基于Spring可扩展Schema提供自定义配置支持(spring配置文件中 配置标签支持)
- C++98C++11的区别
- 你写的Python代码规范吗?
- 爬虫-request库-get请求
- win7下安装linux(CentOS)过程中遇到的问题总结
- EmEditor小功能与使用技巧
- 5岁儿童自学python编程-为什么外国5岁孩子就要学编程?原因你一定想知道
- 关于 FleaPHP
- 利用百度点击原理提升关键词排名
- 爬虫基础知识+Scrapy框架
- simplest_ffmpeg_demuxer_simple(新版ffmpeg函数)
- Kaggle数据竞赛记录 - Steel Defect Detection
- Altium Designer 18绘制一个STM32+SD卡 的系统原理图设计
- (加快设计)推荐一个SketchUp的3D模型库
- 耦合(六种)与 内聚(七种)—《软件工程与计算》笔记
- Python爬虫突然提取不出信息了,返回的是空列表的解决办法
- 罗素问题 ——来自知乎大神
- 美参议员Cynthia Lummis:基础设施法案是“华盛顿滑稽动作”,美国将在科技创新上落后中国
- SaltStack安装踩坑之路
热门文章
- 给开源项目贡献代码_您可以为开源做出6种非代码贡献
- 为什么我选择工作很难做选择_为什么公开工作(即使很难)
- ubuntu 开源镜像_Ubuntu手机可能对开源意味着什么
- 使用jquery版本的viewer.js图片更新的问题
- 下载Bootstrap3源码版本
- Bootstrap 模态框插件Modal 的选项
- es6 Reflect对象的静态方法
- es6 实例:消除魔术字符串
- php限制只能中文,php如何实现一个账号只能有一个人登录
- oracle不同环境数据迁移,生产环境下,oracle不同用户间的数据迁移。第一部分