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, но дополнена следующими расширениями Postgres Pro:
Стандарт позволяет удалять с помощью этой команды только одну подпрограмму.
Указание
IF EXISTS
является расширением.Возможность указывать режимы и имена аргументов является расширением, а правила поиска при указании режимов могут меняться.
Поддержка пользовательских агрегатных функций относится к расширениям.
См. также
DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINEЗаметьте, что также отсутствует команда CREATE ROUTINE
.