DROP FUNCTION#
DROP FUNCTION
DROP FUNCTION — удалить функцию
Синтаксис
DROP FUNCTION [ IF EXISTS ]name
[ ( [ [argmode
] [argname
]argtype
[, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ]
Описание
DROP FUNCTION
удаляет определение существующей функции. Для выполнения этой команды пользователь должен быть владельцем функции. Типы аргументов функции должны быть указаны, так как существует возможность существования нескольких функций с одним и тем же именем и разными списками аргументов.
Параметры
IF EXISTS
Не генерировать ошибку, если функция не существует. В этом случае будет выдано уведомление.
name
Имя (опционально с указанием схемы) существующей функции. Если не указан список аргументов, имя должно быть уникальным в своей схеме.
argmode
Режим аргумента:
IN
,OUT
,INOUT
илиVARIADIC
. Если не указан, по умолчанию используется режимIN
. Обратите внимание, что командаDROP FUNCTION
не обращает внимания на аргументыOUT
, так как только входные аргументы необходимы для определения идентификатора функции. Поэтому достаточно перечислить аргументыIN
,INOUT
иVARIADIC
.argname
Имя аргумента. Обратите внимание, что
DROP FUNCTION
на самом деле не обращает внимания на имена аргументов, поскольку для определения идентификатора функции требуются только типы данных аргументов.argtype
Тип(ы) данных аргументов функции (опционально с указанием схемы), если они есть.
CASCADE
Автоматически удаляйте объекты, зависящие от функции (такие как операторы или триггеры), а также все объекты, зависящие от этих объектов (см. Раздел 5.14).
RESTRICT
Отказаться от удаления функции, если на нее ссылаются другие объекты. Это значение по умолчанию.
Примеры
Эта команда удаляет функцию квадратного корня:
DROP FUNCTION sqrt(integer);
Удаление нескольких функций одной командой:
DROP FUNCTION sqrt(integer), sqrt(bigint);
Если имя функции уникально в ее схеме, можно ссылаться на нее без списка аргументов:
DROP FUNCTION update_employee_salaries;
Обратите внимание, что это отличается от
DROP FUNCTION update_employee_salaries();
который относится к функции без аргументов, в то время как первый вариант может относиться к функции с любым количеством аргументов, включая ноль, при условии, что имя уникально.
Совместимость
Эта команда соответствует стандарту SQL, с расширениями Tantor BE:
Стандарт позволяет удалять только одну функцию за одну команду.
Опция
IF EXISTS
Возможность указания режимов и имен аргументов