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
.