龙岩易富通日常工作笔记

记录日常工作中的点点滴滴

MySQL中procedures 与 functions的区别

2015.09.10 | 544阅读 | 0条评论 | 数据库

procedures 和 functions之间的最大的不同是:不同的触发方法 和 不同的使用需求(或是目地)。 Procedures没有返回值。使用CALL调用procedures,以执行修改表或是处理检索到的记录。 Function有返回值。在一个表达式中触发,该值会返回到调用它的表达式中。更确切的说,一个function在表达式中的用法,其当于一个常量,一个内置的function,或是一个指向表列的引用。 procedures 和 functions 的创建语法亦有不同之处: procedures 的参数可以定义为input-only,output-only,或是input and output。这就意味着procedures可以通过output 参数将值传送到外面。这些值可以在CALL语句后面的statememts被访问或是使用。 function只有input参数。于是,虽然procedures 和 functions都有相同的参数,但是procedures 参数的声明,还是与function有着不同。 在functions 中有返回值,所以在function definition中必须要有一个REUTRNS来指示返回值的数据类型。同时,在function body中必须至少要有一个RETURN来将值返回给调用者。 在procedure definition中不会有RETURNS和RETURN

赞 (

发表评论