DROP AGGREGATE#
DROP AGGREGATE
DROP AGGREGATE — удалить агрегатную функцию
Синтаксис
DROP AGGREGATE [ IF EXISTS ]name
(aggregate_signature
) [, ...] [ CASCADE | RESTRICT ] whereaggregate_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
.