DROP ROUTINE#

DROP ROUTINE

DROP ROUTINE

DROP ROUTINE — удалить процедуру

Синтаксис

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

Описание

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

Примечания

Правила поиска, используемые командой DROP ROUTINE, в основном такие же, как и для команды DROP PROCEDURE; в частности, DROP ROUTINE разделяет поведение этой команды, рассматривая список аргументов, в котором отсутствуют маркеры argmode, как возможно использующий определение аргументов OUT в соответствии со стандартом SQL. (DROP AGGREGATE и DROP FUNCTION этого не делают).

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

Эти правила поиска также используются другими командами, которые действуют на существующие процедуры, такие как ALTER ROUTINE и COMMENT ON ROUTINE.

Примеры

Чтобы удалить процедуру foo для типа integer:

DROP ROUTINE foo(integer);

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

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

Эта команда соответствует стандарту SQL, с расширениями Tantor BE:

  • Стандарт позволяет удалять только одну процедуру за одну команду.

  • Опция IF EXISTS является расширением.

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

  • Пользовательские агрегатные функции являются расширением.

См. также

DROP AGGREGATE, DROP FUNCTION, DROP PROCEDURE, ALTER ROUTINE

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