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