ALTER EXTENSION#
ALTER EXTENSION
ALTER EXTENSION — изменить определение расширения
Синтаксис
ALTER EXTENSIONnameUPDATE [ TOnew_version] ALTER EXTENSIONnameSET SCHEMAnew_schemaALTER EXTENSIONnameADDmember_objectALTER EXTENSIONnameDROPmember_objectwheremember_objectis: ACCESS METHODobject_name| AGGREGATEaggregate_name(aggregate_signature) | CAST (source_typeAStarget_type) | COLLATIONobject_name| CONVERSIONobject_name| DOMAINobject_name| EVENT TRIGGERobject_name| FOREIGN DATA WRAPPERobject_name| FOREIGN TABLEobject_name| FUNCTIONfunction_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | MATERIALIZED VIEWobject_name| OPERATORoperator_name(left_type,right_type) | OPERATOR CLASSobject_nameUSINGindex_method| OPERATOR FAMILYobject_nameUSINGindex_method| [ PROCEDURAL ] LANGUAGEobject_name| PROCEDUREprocedure_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | ROUTINEroutine_name[ ( [ [argmode] [argname]argtype[, ...] ] ) ] | SCHEMAobject_name| SEQUENCEobject_name| SERVERobject_name| TABLEobject_name| TEXT SEARCH CONFIGURATIONobject_name| TEXT SEARCH DICTIONARYobject_name| TEXT SEARCH PARSERobject_name| TEXT SEARCH TEMPLATEobject_name| TRANSFORM FORtype_nameLANGUAGElang_name| TYPEobject_name| VIEWobject_nameandaggregate_signatureis: * | [argmode] [argname]argtype[ , ... ] | [ [argmode] [argname]argtype[ , ... ] ] ORDER BY [argmode] [argname]argtype[ , ... ]
Описание
ALTER EXTENSION изменяет определение установленного расширения. Существует несколько подформ:
UPDATEЭта форма обновляет расширение до новой версии. Расширение должно предоставить подходящий скрипт обновления (или серию скриптов), который может изменить установленную версию на запрошенную версию.
SET SCHEMAЭта форма перемещает объекты расширения в другую схему. Для успешного выполнения этой команды расширение должно быть перемещаемым.
ADDmember_objectЭта форма добавляет существующий объект в расширение. Это особенно полезно в скриптах обновления расширения. Объект будет далее рассматриваться как член расширения; в частности, его можно удалить только путем удаления расширения.
DROPmember_objectЭта форма удаляет объект-член из расширения. Это особенно полезно в скриптах обновления расширения. Объект не удаляется, а только отсоединяется от расширения.
См. Раздел 36.16 для получения дополнительной информации об этих операциях.
Вы должны быть владельцем расширения, чтобы использовать команду ALTER EXTENSION.
Формы ADD/DROP также требуют владения добавляемым/удаляемым объектом.
Параметры
nameИмя установленного расширения.
new_versionЖелаемая новая версия расширения. Это может быть указано как идентификатор или строковый литерал. Если не указано,
ALTER EXTENSION UPDATEпытается обновиться до той версии, которая указана в файле управления расширением в качестве версии по умолчанию.new_schemaНовая схема для расширения.
object_nameaggregate_namefunction_nameoperator_nameprocedure_nameroutine_nameИмя объекта, который будет добавлен или удален из расширения. Имена таблиц, агрегаты, домены, внешние таблицы, функции, операторы, классы операторов, семейства операторов, процедуры, процедуры, последовательности, объекты текстового поиска, типы и представления могут быть уточнены с указанием схемы.
source_typeИмя исходного типа данных приведения.
target_typeИмя целевого типа данных приведения.
argmodeРежим аргумента функции, процедуры или агрегата:
IN,OUT,INOUTилиVARIADIC. Если не указано, по умолчанию используетсяIN. Обратите внимание, что командаALTER EXTENSIONфактически не обращает внимания на аргументыOUT, поскольку только входные аргументы необходимы для определения идентификатора функции. Поэтому достаточно перечислить аргументыIN,INOUTиVARIADIC.argnameИмя функции, процедуры или аргумента агрегата. Обратите внимание, что
ALTER EXTENSIONна самом деле не обращает внимания на имена аргументов, поскольку для определения идентификатора функции требуются только типы данных аргументов.argtypeТип данных аргумента функции, процедуры или агрегата.
left_typeright_typeТип(ы) данных аргументов оператора (опционально с указанием схемы). Для отсутствующего аргумента префиксного оператора напишите
NONE.PROCEDURALЭто шумовое слово.
type_nameИмя типа данных преобразования.
lang_nameИмя языка преобразования.
Примеры
Для обновления расширения 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 - это расширение Tantor SE.