Процедуры, определяемые пользователем#
Примечание
Эта страница переведена при помощи нейросети GigaChat.
Процедура является объектом базы данных, похожим на функцию. Ключевые различия заключаются в следующем:
Процедуры определяются с помощью команды CREATE PROCEDURE, а не
CREATE FUNCTION.Процедуры не возвращают значение функции; поэтому
CREATE PROCEDUREне имеетRETURNSпредложения. Однако процедуры могут вместо этого возвращать данные своим вызывающим абонентам через выходные параметры.Хотя функция вызывается как часть запроса или команды DML, процедура вызывается изолированно с использованием команды CALL.
Процедура может фиксировать или откатывать транзакции во время ее выполнения (затем автоматически начиная новую транзакцию), если только вызывающая команда не является частью явного блока транзакций. Функция не может этого сделать.
Некоторые атрибуты функций, такие как строгость, неприменимы к процедурам. Эти атрибуты управляют тем, как функция используется в запросе, что не относится к процедурам.
Объяснения в следующих разделах о том, как определять пользовательские функции, также применимы и к процедурам, за исключением упомянутых выше моментов.
В совокупности функции и процедуры также известны как подпрограммы. Существуют команды, такие как ALTER ROUTINE и DROP ROUTINE, которые могут работать с функциями и процедурами без необходимости знать, к какому типу они относятся. Обратите внимание, однако, что нет команды CREATE ROUTINE.