37.4. User-Defined Procedures
A procedure is a database object similar to a function. The difference is that a procedure does not return a value, so there is no return type declaration. While a function is called as part of a query or DML command, a procedure is called in isolation using the CALL command. If the CALL command is not part of an explicit transaction, a procedure in many server-side languages can commit, rollback, and begin new transactions during its execution, which is not possible in functions.
The explanations on how to define user-defined functions in the rest of this chapter apply to procedures as well, except that the CREATE PROCEDURE command is used instead, there is no return type, and some other features such as strictness don't apply.
Collectively, functions and procedures are also known
as
routines
.
There are commands such as
ALTER ROUTINE
and
DROP ROUTINE
that can operate on functions and
procedures without having to know which kind it is. Note, however, that
there is no
CREATE ROUTINE
command.