Быстрый старт
Развертывание
Моделирование данных
Подключение
Запись данных
Миграция
Запросы
Операции и обслуживание
Типовое обслуживание
Секционирование
Резервное копирование и восстановление
Масштабирование
Зеркалирование
Управление ресурсами
Безопасность
Мониторинг
Настройка производительности
Устранение неполадок
Справочник
Руководство по инструментам
Типы данных
Хранилище данных
Выполняющая система
Потоковая передача
Восстановление после сбоев
Конфигурация
Индексы
Расширения
Справочник по SQL
Часто задаваемые вопросы
Изменяет определение агрегатной функции
ALTER AGGREGATE <name> ( <aggregate_signature> ) RENAME TO <new_name>
ALTER AGGREGATE <name> ( <aggregate_signature> )
OWNER TO { <new_owner> | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE <name> ( <aggregate_signature> ) SET SCHEMA <new_schema>
where <aggregate_signature> is:
* |
[ <argmode> ] [ <argname> ] <argtype> [ , ... ] |
[ [ <argmode> ] [ <argname> ] <argtype> [ , ... ] ] ORDER BY [ <argmode> ] [ <argname> ] <argtype> [ , ... ]
ALTER AGGREGATE изменяет определение агрегатной функции.
Чтобы использовать ALTER AGGREGATE, вы должны быть владельцем агрегатной функции. Чтобы изменить схему агрегатной функции, вы также должны иметь привилегию CREATE в новой схеме. Чтобы изменить владельца, вы также должны быть прямым или косвенным членом новой роли-владельца, и эта роль должна обладать привилегией CREATE в схеме агрегатной функции. (Эти ограничения обеспечивают то, что изменение владельца не позволяет сделать ничего такого, что нельзя было бы сделать путём удаления и повторного создания агрегатной функции. Однако суперпользователь может изменить владельца любой агрегатной функции.)
Рекомендуемый способ ссылки на агрегатную функцию упорядоченного набора — указать ORDER BY между спецификациями прямых и агрегируемых аргументов, аналогично CREATE AGGREGATE. Тем не менее, можно также опустить ORDER BY и просто объединить прямые и агрегируемые аргументы в один список. В этой краткой форме, если VARIADIC "any" использовался как в списке прямых, так и в списке агрегируемых аргументов, VARIADIC "any" следует указывать только один раз.
Переименовать агрегатную функцию myavg для типа integer в my_average:
ALTER AGGREGATE myavg(integer) RENAME TO my_average;
Изменить владельца агрегатной функции myavg для типа integer на joe:
ALTER AGGREGATE myavg(integer) OWNER TO joe;
Переместить агрегатную функцию упорядоченного набора mypercentile с прямым аргументом типа float8 и агрегируемым аргументом типа integer в схему myschema:
ALTER AGGREGATE mypercentile(float8 ORDER BY integer) SET SCHEMA myschema;
Также будет работать следующий вариант:
ALTER AGGREGATE mypercentile(float8, integer) SET SCHEMA myschema;
Оператор ALTER AGGREGATE отсутствует в стандарте SQL.