在MySQL数据库上下文中,这3个术语有何区别:
- 存储过程(stored procedure)
- 存储函数(stored function)
- 存储例程(stored routine)
WEEKDAY()
等)这样的内置函数被认为是什么?WEEKDAY()
等)这样的内置函数被认为是什么?谷歌是你的朋友。"mysql routine function procedure" 的第一个匹配结果是这个:http://dev.mysql.com/doc/refman/5.0/en/stored-routines-syntax.html
简单总结如下:
存储过程可以是过程(procedure)或函数。
通过 CALL 语句调用过程,仅能使用输出参数返回值。
函数可像其他函数一样在语句内部调用,并返回标量值。
这里我试图总结函数和过程之间的区别:
SELECT func_name FROM DUAL
,而过程则不能。MySQL函数和存储过程的区别
MYSQL函数
必须返回值。无法在函数中使用
IN
,OUT
和INOUT
。但创建函数时必须声明返回数据类型。函数可以从SQL语句中调用。函数返回一个值。
MYSQL存储过程
返回值不是强制性的,但可以使用
OUT
参数来返回存储过程的输出。可以使用IN
|OUT
|INOUT
参数。存储过程不能从SQL语句中调用。存储过程可以通过使用OUT
或INOUT
参数返回多个值。
过程与函数
存储过程中函数必须返回一个值,但是可以选择不返回(存储过程可以返回零个或多个值)。 函数只能有输入参数,而存储过程可以有输入/输出参数。 函数可以从存储过程中调用,但是存储过程不能从函数中调用。