ALTER EXTENSION
ALTER EXTENSION — изменить определение расширения
Синтаксис
ALTER EXTENSIONимя
UPDATE [ TOновая_версия
] ALTER EXTENSIONимя
SET SCHEMAновая_схема
ALTER EXTENSIONимя
ADDэлемент_объект
ALTER EXTENSIONимя
DROPэлемент_объект
Здесьэлемент_объект
: ACCESS METHODимя_объекта
| AGGREGATEимя_агрегатной_функции
(сигнатура_агр_функции
) | CAST (исходный_тип
ASцелевой_тип
) | COLLATIONимя_объекта
| CONVERSIONимя_объекта
| DOMAINимя_объекта
| EVENT TRIGGERимя_объекта
| FOREIGN DATA WRAPPERимя_объекта
| FOREIGN TABLEимя_объекта
| FUNCTIONимя_функции
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] | MATERIALIZED VIEWимя_объекта
| OPERATORимя_оператора
(тип_слева
,тип_справа
) | OPERATOR CLASSимя_объекта
USINGиндексный_метод
| OPERATOR FAMILYимя_объекта
USINGиндексный_метод
| [ PROCEDURAL ] LANGUAGEимя_объекта
| PROCEDUREимя_процедуры
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] | ROUTINEимя_подпрограммы
[ ( [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[, ...] ] ) ] | SCHEMAимя_объекта
| SEQUENCEимя_объекта
| SERVERимя_объекта
| TABLEимя_объекта
| TEXT SEARCH CONFIGURATIONимя_объекта
| TEXT SEARCH DICTIONARYимя_объекта
| TEXT SEARCH PARSERимя_объекта
| TEXT SEARCH TEMPLATEимя_объекта
| TRANSFORM FORимя_типа
LANGUAGEимя_языка
| TYPEимя_объекта
| VIEWимя_объекта
исигнатура_агр_функции
: * | [режим_аргумента
] [имя_аргумента
]тип_аргумента
[ , ... ] | [ [режим_аргумента
] [имя_аргумента
]тип_аргумента
[ , ... ] ] ORDER BY [режим_аргумента
] [имя_аргумента
]тип_аргумента
[ , ... ]
Описание
ALTER EXTENSION
изменяет определение установленного расширения. Эта команда имеет несколько подвидов:
UPDATE
Эта форма обновляет версию расширения. Расширение должно предоставлять подходящий скрипт обновления (или набор скриптов), который может сменить текущую установленную версию на требуемую.
SET SCHEMA
Эта форма переносит объекты расширения в другую схему. Чтобы эта команда выполнилась успешно, расширение должно быть перемещаемым.
ADD
элемент_объект
Эта форма добавляет существующий объект в расширение. В основном это применяется в скриптах обновления расширений. Добавленный объект затем будет считаться частью расширения, и удалить его можно будет, только удалив расширение.
DROP
элемент_объект
Эта форма удаляет из расширения включённый в него объект. В основном это применяется в скриптах обновления расширений. Сам объект при этом не уничтожается, а только отделяется от расширения.
Подробнее эти операции описаны в Разделе 38.17.
Чтобы выполнить команду ALTER EXTENSION
, необходимо быть владельцем данного расширения. Для форм ADD
/DROP
требуется также быть владельцем добавляемого/удаляемого объекта.
Параметры
имя
Имя установленного расширения.
новая_версия
Запрашиваемая новая версия расширения. Её можно записать в виде идентификатора или строкового значения. Если она не указана,
ALTER EXTENSION UPDATE
пытается выполнить обновление до версии, указанной в качестве версии по умолчанию в управляющем файле расширения.новая_схема
Новая схема расширения.
имя_объекта
имя_агрегатной_функции
имя_функции
имя_оператора
имя_процедуры
имя_подпрограммы
Имя объекта, добавляемого или удаляемого из расширения. Имена таблиц, агрегатных функций, доменов, сторонних таблиц, функций, операторов, классов операторов, семейств операторов, процедур, подпрограмм, последовательностей, объектов текстового поиска, типов и представлений можно дополнить именем схемы.
исходный_тип
Имя исходного типа данных для приведения.
целевой_тип
Имя целевого типа данных для приведения.
режим_аргумента
Режим аргумента функции, процедуры или агрегата:
IN
,OUT
,INOUT
илиVARIADIC
. По умолчанию подразумеваетсяIN
. Заметьте, чтоALTER EXTENSION
не учитывает аргументыOUT
, так как для идентификации функции нужны только типы входных аргументов. Поэтому достаточно перечислить только аргументыIN
,INOUT
иVARIADIC
.имя_аргумента
Имя аргумента функции, процедуры или агрегата. Заметьте, что на самом деле
ALTER EXTENSION
не обращает внимание на имена аргументов, так как для однозначной идентификации функции достаточно только типов аргументов.тип_аргумента
Тип данных аргумента функции, процедуры или агрегата.
тип_слева
тип_справа
Тип данных аргументов оператора (возможно, дополненный именем схемы). В случае отсутствия аргумента префиксного оператора укажите вместо типа
NONE
.PROCEDURAL
Это слово не несёт смысловой нагрузки.
имя_типа
Имя типа данных, для которого предназначена трансформация.
имя_языка
Имя языка, для которого предназначена трансформация.
Примеры
Обновление расширения 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
является расширением Postgres Pro.