DROP AGGREGATE
примечание
Эта страница переведена при помощи нейросети GigaChat.
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
- Автоматически удаляет объекты, которые зависят от агрегатной функции (например, представления, использующие ее), а также все объекты, зависящие от этих объектов.
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
.