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