Перейти к основному содержимому

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