Перейти к основному содержимому

DROP ROUTINE

примечание

Эта страница переведена при помощи нейросети GigaChat.

DROP ROUTINE — удаление процедуры.

Синтаксис

DROP ROUTINE [ IF EXISTS ] name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] [, ...]
[ CASCADE | RESTRICT ]

Описание

DROP ROUTINE удаляет определение одной или нескольких существующих процедур. Термин «процедура» включает агрегатные функции, обычные функции и процедуры. Более подробная информация о параметрах, дополнительных примерах приведена в разделах DROP AGGREGATE, DROP FUNCTION и DROP PROCEDURE.

Примечания

Механизм поиска и выбора процедур в DROP ROUTINE работает аналогично команде DROP PROCEDURE. В частности, если список аргументов указан без модификаторов (IN, OUT и другие), то DROP ROUTINE может предположить, что он следует стандарту SQL, при котором OUT-аргументы тоже входят в список. Команды DROP AGGREGATE и DROP FUNCTION такого поведения не имеют.

Если у процедур разных типов одинаковое имя, DROP ROUTINE может вернуть ошибку неоднозначности, тогда как более конкретная команда (например, DROP FUNCTION) сработает без проблем. Чтобы избежать таких ситуаций, рекомендуется явно указывать типы аргументов.

Такие же правила поиска применяются и в других командах, работающих с существующими процедурами, такие как ALTER ROUTINE, COMMENT ON ROUTINE.

Примеры

Удаление процедуры foo, принимающей аргумент типа integer:

DROP ROUTINE foo(integer);

Команда сработает независимо от того, является ли foo агрегатной функцией, обычной функцией или процедурой.

Совместимость

Команда DROP ROUTINE соответствует стандарту SQL, однако PostgreSQL предоставляет расширения:

  • Стандарт разрешает удалять только одну процедуру за раз.
  • Параметр IF EXISTS является расширением.
  • Возможность указать режимы и имена аргументов является расширением, а правила поиска различаются при задании режимов.
  • Пользовательские агрегатные функции являются расширением.

Обратите внимание, что нет команды CREATE ROUTINE.

Смотрите также

DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE