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
.