MySQL存储函数和存储过程的区别

  • Post author:
  • Post category:mysql




存储过程与存储函数的区别

1:存储函数和存储过程统称为存储例程(store routine),存储函数的限制比较多,例如不能用临时表,只能用表变量,而存储过程的限制较少,存储过程的实现功能要复杂些,而函数的实现功能针对性比较强

2:返回值不同
存储函数必须有返回值,且仅返回一个结果值
存储过程可以没有返回值,但是能返回结果集(out,inout)

3:调用时的不同
存储函数嵌入在SQL中使用,可以在select 存储函数名(变量值);
存储过程通过call语句调用 call 存储过程名

4:参数的不同
存储函数的参数类型类似于IN参数
存储过程的参数类型有三种
1: in 数据只是从外部传入内部使用(值传递),可以是数值也可以是变量
2: out 只允许过程内部使用(不用外部数据),给外部使用的(引用传递:外部的数据会被先清空才会进入到内部),只能是变量
3: inout 外部可以在内部使用,内部修改的也可以给外部使用,典型的引用 传递,只能传递变量



版权声明:本文为qq_26963433原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。