DROP AGGREGATE#

DROP AGGREGATE

DROP AGGREGATE

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

Синтаксис

DROP AGGREGATE [ IF EXISTS ] name ( aggregate_signature ) [, ...] [ CASCADE | RESTRICT ]

where aggregate_signature is:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

Описание

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

Параметры

IF EXISTS

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

name

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

argmode

Режим аргумента: IN или VARIADIC. Если не указан, используется значение по умолчанию - IN.

argname

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

argtype

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

CASCADE

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

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.