10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 41.6 mb
PDF (A4)- 41.7 mb
手册页(TGZ)- 262.2 kb
手册页(Zip)- 372.3 kb
信息(Gzip)- 4.0 mb
信息(邮政编码)- 4.0 mb
本手册节选

13.2.1 CALL语句

调用sp_name([参数[…]])调用sp_name(())

调用语句调用先前使用定义的存储过程创建过程

不带参数的存储过程可以不带括号调用。也就是说,调用p ()而且叫p是等价的。

调用是否可以使用声明为的参数将值传递回调用者INOUT参数。当过程返回时,客户端程序还可以获得在例程中执行的最终语句所受影响的行数:在SQL级别,调用ROW_COUNT ()函数;从C API,调用mysql_affected_rows ()函数。

有关未处理条件对过程参数的影响的信息,请参见第13.6.7.8节“条件处理和OUT或INOUT参数”

类从过程中获取值INOUT参数,通过用户变量传递参数,然后在过程返回后检查变量的值。如果从另一个存储过程或函数中调用过程,还可以将例程参数或局部例程变量作为INOUT参数)。对于一个INOUT参数,在将其传递给过程之前初始化其值。下面的过程有一个参数,该过程将其设置为当前服务器版本INOUT该过程从当前值加1的值:

CREATE PROCEDURE (OUT ver_param VARCHAR(25), INOUT incr_param INT) BEGIN #设置OUT参数的值SELECT VERSION() INTO ver_param;INOUT参数的增量值SET incr_param = incr_param + 1;结束;

调用过程之前,初始化要传递的变量INOUT参数。在调用过程之后,你可以看到这两个变量的值都被设置或修改了:

mysql> SET @增量= 10;mysql>调用p(@版本,@增量);mysql> SELECT @version, @increment;+--------------------+------------+ | @ 版| @increment  | +--------------------+------------+ | 8.0.3-rc-debug-log | 11  | +--------------------+------------+

在准备调用与连用的语句准备而且执行,占位符可用于参数,,INOUT参数。这些类型的参数可以如下使用:

mysql> SET @增量= 10;mysql> PREPARE s FROM 'CALL p(??)”;mysql> EXECUTE USING @version, @increment;mysql> SELECT @version, @increment;+--------------------+------------+ | @ 版| @increment  | +--------------------+------------+ | 8.0.3-rc-debug-log | 11  | +--------------------+------------+

编写C程序,使用调用SQL语句来执行生成结果集的存储过程CLIENT_MULTI_RESULTS必须启用Flag。这是因为调用除了过程中执行的语句可能返回的任何结果集之外,还返回一个指示调用状态的结果。CLIENT_MULTI_RESULTS如果也必须启用调用用于执行包含预处理语句的任何存储过程。当加载这样一个过程时,无法确定这些语句是否产生结果集,因此有必要假设它们产生结果集。

CLIENT_MULTI_RESULTS可以在通话时启用吗mysql_real_connect (),或者通过传递CLIENT_MULTI_RESULTS标记本身,或通过传递隐式标记CLIENT_MULTI_STATEMENTS(这也使得CLIENT_MULTI_RESULTS).CLIENT_MULTI_RESULTS默认启用。

处理的结果调用语句使用mysql_query ()mysql_real_query (),使用调用mysql_next_result ()以确定是否有更多的结果。示例请参见支持多语句执行

C程序可以使用预处理语句接口来执行调用语句和访问而且INOUT参数。这是通过处理的结果调用语句使用循环调用mysql_stmt_next_result ()以确定是否有更多的结果。示例请参见准备好的CALL语句支持.提供MySQL接口的语言可以使用prepared调用直接检索的语句而且INOUT过程参数。

对存储程序引用的对象的元数据更改将被检测到,并在下次执行程序时自动重新解析受影响的语句。有关更多信息,请参见第8.10.3节“预处理语句和存储程序的缓存”