37.4. Пользовательские процедуры

Процедура представляет собой объект базы данных, подобный функции. Отличие состоит в том, что процедура не возвращает значение, и поэтому для неё не определяется возвращаемый тип. Тогда как функция вызывается в составе запроса или команды DML, процедура вызывается явно, командой CALL. Если команда CALL выполняется не в явной транзакции, в процедурах на многих серверных языках во время выполнения можно начинать, фиксировать и отменять транзакции, что невозможно в функциях.

Всё, что говорится в продолжении данной главы о создании пользовательских функций, применимо и к процедурам, за исключением того, что для процедур используется команда CREATE PROCEDURE, не определяется тип результата, и к ним не относятся некоторые свойства, например, строгость.

Функции и процедуры в совокупности также называются подпрограммами. Существуют команды, такие как ALTER ROUTINE и DROP ROUTINE, которые способны работать и с функциями, и с процедурами, не требуя указания точного вида объекта. Однако заметьте, что команды CREATE ROUTINE нет.