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

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

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

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

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

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

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

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

6.1.9. ALTER EXTENSION

6.1.9. ALTER EXTENSION

ALTER EXTENSION — изменение определения расширения

Синтаксис

ALTER EXTENSION name UPDATE [ TO new_version ]
ALTER EXTENSION name SET SCHEMA new_schema
ALTER EXTENSION name ADD member_object
ALTER EXTENSION name DROP member_object

где member_object может быть:

  ACCESS METHOD object_name |
  AGGREGATE aggregate_name ( aggregate_signature ) |
  CAST (source_type AS target_type) |
  COLLATION object_name |
  CONVERSION object_name |
  DOMAIN object_name |
  EVENT TRIGGER object_name |
  FOREIGN DATA WRAPPER object_name |
  FOREIGN TABLE object_name |
  FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  MATERIALIZED VIEW object_name |
  OPERATOR operator_name (left_type, right_type) |
  OPERATOR CLASS object_name USING index_method |
  OPERATOR FAMILY object_name USING index_method |
  [ PROCEDURAL ] LANGUAGE object_name |
  PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |
  SCHEMA object_name |
  SEQUENCE object_name |
  SERVER object_name |
  TABLE object_name |
  TEXT SEARCH CONFIGURATION object_name |
  TEXT SEARCH DICTIONARY object_name |
  TEXT SEARCH PARSER object_name |
  TEXT SEARCH TEMPLATE object_name |
  TRANSFORM FOR type_name LANGUAGE lang_name |
  TYPE object_name |
  VIEW object_name

и aggregate_signature имеет вид:

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

Описание

Команда ALTER EXTENSION изменяет определение установленного расширения. Существует несколько подформ:

UPDATE

Эта форма обновляет расширение до более новой версии. Расширение должно предоставлять соответствующий скрипт обновления (или серию скриптов), который может преобразовать текущую установленную версию в запрашиваемую.

SET SCHEMA

Эта форма перемещает объекты расширения в другую схему. Расширение должно быть перемещаемым для успешного выполнения этой команды.

ADD member_object

Эта форма добавляет существующий объект к расширению. В основном это полезно в скриптах обновления расширений. Объект впоследствии будет рассматриваться как член расширения; в частности, его можно будет удалить только путём удаления самого расширения.

DROP member_object

Эта форма удаляет объект-член из расширения. В основном это полезно в скриптах обновления расширений. Сам объект не удаляется, а только отвязывается от расширения.

Подробнее об этих операциях см. Раздел 5.1.17.

Чтобы использовать ALTER EXTENSION, вы должны быть владельцем расширения. Формам ADD/DROP также требуется право владения добавляемым/удаляемым объектом.

Параметры

name

Имя установленного расширения.

new_version

Желаемая новая версия расширения. Её можно записать либо как идентификатор, либо как строковый литерал. Если не указана, команда ALTER EXTENSION UPDATE пытается обновиться до версии, указанной как версия по умолчанию в управляющем файле расширения.

new_schema

Новая схема для расширения.

object_name
aggregate_name
function_name
operator_name
procedure_name
routine_name

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

source_type

Имя исходного типа данных преобразования CAST.

target_type

Имя целевого типа данных преобразования CAST.

argmode

Режим аргумента функции, процедуры или агрегатной функции: IN, OUT, INOUT или VARIADIC. Если опущен, по умолчанию используется IN. Обратите внимание, что ALTER EXTENSION фактически не учитывает аргументы OUT, поскольку для определения идентификатора функции нужны только входные аргументы. Поэтому достаточно перечислить аргументы IN, INOUT и VARIADIC.

argname

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

argtype

Тип данных аргумента функции, процедуры или агрегатной функции.

left_type
right_type

Тип(ы) данных аргументов оператора (опционально с указанием схемы). Для отсутствующего аргумента префиксного оператора укажите NONE.

PROCEDURAL

Это пустое слово.

type_name

Имя типа данных преобразования TRANSFORM.

lang_name

Имя языка преобразования TRANSFORM.

Примеры

Для обновления расширения hstore до версии 2.0:

ALTER EXTENSION hstore UPDATE TO '2.0';

Для перемещения расширения hstore в схему utils:

ALTER EXTENSION hstore SET SCHEMA utils;

Чтобы добавить существующую функцию к расширению hstore:

ALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);

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

Команда ALTER EXTENSION является расширением Digital Q.DataBase.

Смотрите также

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

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