DROP ROUTINE
DROP ROUTINE — удалить подпрограмму
Синтаксис
DROP ROUTINE [ IF EXISTS ] имя [ ( [ [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [, ...] ] ) ] [, ...]
[ CASCADE | RESTRICT ]
Описание
Команда DROP ROUTINE удаляет определение одной или нескольких существующих
подпрограмм. Термин «подпрограмма» включает в себя агрегатные и обычные функции
и процедуры. Описание параметров, а также дополнительные примеры и сведения см.
на справочных страницах команд DROP AGGREGATE, DROP FUNCTION и
DROP PROCEDURE.
Примечания
Правила поиска, использующиеся командой DROP ROUTINE фундаментально ничем не
отличаются от правил команды DROP PROCEDURE; в частности DROP ROUTINE
демонстрирует то же поведение, рассматривая список аргументов без маркеров
режим_аргумента как соответствующий определению стандарта SQL, где
аргументы OUT (выходные) включаются в этот список. (DROP AGGREGATE и
DROP FUNCTION этого не делают.)
В некоторых случаях, когда несколько подпрограмм разных видов имеют одно имя,
DROP ROUTINE может не выполниться, выдав ошибку неоднозначности, тогда как более
конкретная команда (DROP FUNCTION и т. д.) могла бы сработать. Подобные проблемы
тоже можно решить, задав список типов аргументов более подробно.
Эти правила поиска также действуют и для других команд, работающих с существующими
подпрограммами, например, ALTER ROUTINE и COMMENT ON ROUTINE.
Примеры
Удаление подпрограммы foo для типа integer:
DROP ROUTINE foo(integer);
Эта команда будет работать независимо от того, является ли foo агрегатом, функцией или процедурой.
Совместимость
Эта команда соответствует стандарту SQL со следующими расширениями QHB:
-
Стандарт позволяет удалить одной командой только одну подпрограмму.
-
Параметр IF EXISTS является расширением.
-
Возможность задавать режимы и имена аргументов является расширением, а правила поиска меняются, когда задаются режимы.
-
Пользовательские агрегатные функции являются расширением.
См. также
DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE
Обратите внимание, что команды CREATE ROUTINE не существует.