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