相关的文档10bet官方网站 下载本手册
PDF(美国高级主任)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 236.9 kb
手册页(Zip)- 348.5 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册节选

23.2.1存储例程语法

存储例程可以是一个过程,也可以是一个函数。类创建存储的例程创建过程而且创建函数语句(见第13.1.16节,CREATE PROCEDURE和CREATE FUNCTION语句).调用过程时使用调用声明(见第13.2.1节“CALL语句”),并且只能使用输出变量返回值。函数可以像任何其他函数一样从语句内部调用(即通过调用函数名),并且可以返回标量值。存储例程的主体可以使用复合语句(参见13.6节“复合报表”).

方法可以删除存储的例程下降过程而且删除函数语句(见第13.1.27节,DROP PROCEDURE和DROP FUNCTION语句),并以改变的过程而且改变函数语句(见第13.1.6节,“ALTER PROCEDURE声明”).

存储过程或函数与特定的数据库相关联。这有几个含义:

  • 调用例程时,隐式使用db_name执行(并在例程终止时撤消)。使用不允许存储例程中的语句。

  • 可以用数据库名称限定例程名称。这可用于引用不在当前数据库中的例程。例如,调用存储过程p或函数f这与测验可以说是数据库调用test.p ()test.f ()

  • 删除数据库时,也会删除与之相关的所有存储例程。

存储函数不能递归。

存储过程中的递归是允许的,但默认情况下是禁用的。要启用递归,请设置max_sp_recursion_depth服务器系统变量的值大于零。存储过程递归增加了对线程堆栈空间的需求。如果你增加max_sp_recursion_depth时,可能需要通过增加的值来增加线程堆栈大小thread_stack在服务器启动时。看到第5.1.7节“服务器系统变量”,以获取更多资料。

MySQL支持一个非常有用的扩展,可以使用常规选择语句(即不使用游标或局部变量)。查询的结果集直接发送给客户端。多个选择语句会生成多个结果集,因此客户端必须使用支持多个结果集的MySQL客户端库。这意味着客户端必须使用MySQL 4.1版本的客户端库。客户机还应该指定CLIENT_MULTI_RESULTS选项。对于C程序,可以使用mysql_real_connect ()C语言API函数。看到mysql_real_connect (),支持多语句执行