×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.2. ALTER AGGREGATE

6.1.2. ALTER AGGREGATE

ALTER AGGREGATE — изменение определения агрегатной функции

Синтаксис

ALTER AGGREGATE name ( aggregate_signature ) RENAME TO new_name
ALTER AGGREGATE name ( aggregate_signature )
                OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER }
ALTER AGGREGATE name ( aggregate_signature ) SET SCHEMA new_schema

где aggregate_signature имеет следующий вид:

* |
[ argmode ] [ argname ] argtype [ , ... ] |
[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]

Описание

ALTER AGGREGATE изменяет определение агрегатной функции.

Чтобы выполнить команду ALTER AGGREGATE, вы должны быть владельцем агрегатной функции. Для изменения схемы агрегатной функции необходимо также иметь привилегию CREATE в новой схеме. Для изменения владельца вы должны иметь возможность выполнить SET ROLE для новой владеющей роли, и эта роль должна иметь привилегию CREATE в схеме агрегатной функции. (Эти ограничения гарантируют, что изменение владельца не позволяет сделать ничего, чего нельзя было бы сделать удалением и повторным созданием агрегатной функции. Однако суперпользователь может изменить владельца любой агрегатной функции в любом случае.)

Параметры

name

Имя (возможно, дополненное схемой) существующей агрегатной функции.

argmode

Режим аргумента: IN или VARIADIC. Если опущен, по умолчанию используется IN.

argname

Имя аргумента. Обратите внимание, что команда ALTER AGGREGATE фактически не учитывает имена аргументов, так как для определения идентификатора агрегатной функции необходимы только типы данных аргументов.

argtype

Входной тип данных, над которым работает агрегатная функция. Для ссылки на агрегатную функцию без аргументов напишите * вместо списка спецификаций аргументов. Для ссылки на упорядоченную агрегатную функцию напишите ORDER BY между спецификациями прямых и агрегируемых аргументов.

new_name

Новое имя агрегатной функции.

new_owner

Новый владелец агрегатной функции.

new_schema

Новая схема для агрегатной функции.

Примечания

Рекомендуемый синтаксис для ссылки на упорядоченную агрегатную функцию — написать 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;

Совместимость

В стандарте SQL нет команды ALTER AGGREGATE.

Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению