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