过程和函数之间最显着的区别是它们的调用方式不同并且出于不同的目的。除此之外,以下是过程和函数之间的区别 -
-
过程不返回值。相反,它是使用 CALL 语句调用来执行操作,例如修改表或处理检索到的记录。
另一方面,函数在表达式中调用,并将单个值直接返回到要在表达式中使用的调用者。也就是说,函数在表达式中的使用方式与常量、内置函数或对表列的引用相同。
-
我们不能使用以下方式调用函数: CALL 语句。我们不能在表达式中调用过程。
-
例程创建的语法与过程和函数有些不同,如下 -
CREATE [DEFINER = { user | CURRENT_USER }] PROCEDURE sp_name ([proc_parameter[,...]]) [characteristic ...] routine_body CREATE [DEFINER = { user | CURRENT_USER }] FUNCTION sp_name ([func_parameter[,...]]) RETURNS type [characteristic ...] routine_body proc_parameter: [ IN | OUT | INOUT ] param_name type func_parameter: param_name type type: Any valid MySQL data type characteristic: COMMENT 'string' | LANGUAGE SQL | [NOT] DETERMINISTIC | { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA } | SQL SECURITY { DEFINER | INVOKER } routine_body: Valid SQL routine statement