DROP AGGREGATE

DROP AGGREGATE — удалить агрегатную функцию


Синтаксис

DROP AGGREGATE [ IF EXISTS ] имя ( сигнатура_агрегата ) [, ...] [ CASCADE | RESTRICT ]

где сигнатура_агрегата:

* |
[ режим_аргумента ] [ имя_аргумента ] тип_аргумента [ , ... ] |
[ [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [ , ... ] ] ORDER BY [ режим_аргумента ] [ имя_аргумента ] тип_аргумента [ , ... ]

Описание

Команда DROP AGGREGATE удаляет существующую агрегатную функцию. Для выполнения этой команды нужно быть владельцем соответствующей агрегатной функции.


Параметры

IF EXISTS

Не считать ошибкой, если эта агрегатная функция не существует. В этом случае выдается только замечание.

имя

Имя существующей агрегатной функции (может быть дополнено схемой).

режим_аргумента

Режим аргумента: IN (входной) или VARIADIC (переменный). Если этот параметр опущен, значение по умолчанию равно IN.

имя_аргумента

Имя аргумента. Обратите внимание, что DROP AGGREGATE фактически не обращает внимания на имена аргументов, поскольку для идентификации агрегатной функции необходимы только типы данных ее аргументов.

тип_аргумента

Тип входных данных, с которыми работает агрегатная функция. Чтобы сослаться на агрегатную функцию без аргументов, напишите вместо списка аргументов *. Чтобы сослаться на сортирующую агрегатную функцию, напишите ORDER BY между указаниями непосредственных и агрегированных аргументов.

CASCADE

Автоматически удалять объекты, зависящие от этой агрегатной функции (например использующие ее представления), и, в свою очередь, все объекты, зависящие от этих объектов (см. раздел Отслеживание зависимостей).

RESTRICT

Отказать в удалении агрегатной функции, если от нее зависят какие-либо объекты. Это поведение по умолчанию.


Примечания

Альтернативные синтаксисы для ссылки на сортирующие агрегаты описаны на справочной странице команды ALTER AGGREGATE.


Примеры

Удаление агрегатной функции myavg для типа integer:

DROP AGGREGATE myavg(integer);

Удаление гипотезирующей агрегатной функции myrank, которая принимает произвольный список сортируемых столбцов и соответствующий список непосредственных аргументов:

DROP AGGREGATE myrank(VARIADIC "any" ORDER BY VARIADIC "any");

Удаление нескольких агрегатных функций в одной команде:

DROP AGGREGATE myavg (integer), myavg (bigint);

Совместимость

В стандарте SQL нет команды DROP AGGREGATE.


См. также

ALTER AGGREGATE, CREATE AGGREGATE