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Автоматически удалить объекты, зависящие от функции (например, операторы или триггеры), а также все объекты, зависящие от этих объектов (см. Раздел 2.2.15).
RESTRICTОтказаться от удаления функции, если от неё зависят какие-либо объекты. Это значение по умолчанию.
Эта команда удаляет функцию квадратного корня:
DROP FUNCTION sqrt(integer);
Удалить несколько функций одной командой:
DROP FUNCTION sqrt(integer), sqrt(bigint);
Если имя функции уникально в её схеме, на неё можно ссылаться без списка аргументов:
DROP FUNCTION update_employee_salaries;
Обратите внимание, что это отличается от
DROP FUNCTION update_employee_salaries();
которое ссылается на функцию с нулём аргументов, тогда как первый вариант может ссылаться на функцию с любым количеством аргументов, включая ноль, при условии, что имя уникально.
Эта команда соответствует стандарту SQL, со следующими расширениями Digital Q.DataBase:
Стандарт позволяет удалять только одну функцию за команду.
Параметр IF EXISTS
Возможность указывать режимы и имена аргументов