ALTER EXTENSION#
ALTER EXTENSION
ALTER EXTENSION — изменить определение расширения
Синтаксис
ALTER EXTENSIONname
UPDATE [ TOnew_version
] ALTER EXTENSIONname
SET SCHEMAnew_schema
ALTER EXTENSIONname
ADDmember_object
ALTER EXTENSIONname
DROPmember_object
wheremember_object
is: ACCESS METHODobject_name
| AGGREGATEaggregate_name
(aggregate_signature
) | CAST (source_type
AStarget_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_name
USINGindex_method
| OPERATOR FAMILYobject_name
USINGindex_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_name
LANGUAGElang_name
| TYPEobject_name
| VIEWobject_name
andaggregate_signature
is: * | [argmode
] [argname
]argtype
[ , ... ] | [ [argmode
] [argname
]argtype
[ , ... ] ] ORDER BY [argmode
] [argname
]argtype
[ , ... ]
Описание
ALTER EXTENSION
изменяет определение установленного расширения. Существует несколько подформ:
UPDATE
Эта форма обновляет расширение до новой версии. Расширение должно предоставить подходящий скрипт обновления (или серию скриптов), который может изменить установленную версию на запрошенную версию.
SET SCHEMA
Эта форма перемещает объекты расширения в другую схему. Для успешного выполнения этой команды расширение должно быть перемещаемым.
ADD
member_object
Эта форма добавляет существующий объект в расширение. Это особенно полезно в скриптах обновления расширения. Объект будет далее рассматриваться как член расширения; в частности, его можно удалить только путем удаления расширения.
DROP
member_object
Эта форма удаляет объект-член из расширения. Это особенно полезно в скриптах обновления расширения. Объект не удаляется, а только отсоединяется от расширения.
См. Раздел 35.16 для получения дополнительной информации об этих операциях.
Вы должны быть владельцем расширения, чтобы использовать команду 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
Имя исходного типа данных приведения.
target_type
Имя целевого типа данных приведения.
argmode
Режим аргумента функции, процедуры или агрегата:
IN
,OUT
,INOUT
илиVARIADIC
. Если не указано, по умолчанию используетсяIN
. Обратите внимание, что командаALTER EXTENSION
фактически не обращает внимания на аргументыOUT
, поскольку только входные аргументы необходимы для определения идентификатора функции. Поэтому достаточно перечислить аргументыIN
,INOUT
иVARIADIC
.argname
Имя функции, процедуры или аргумента агрегата. Обратите внимание, что
ALTER EXTENSION
на самом деле не обращает внимания на имена аргументов, поскольку для определения идентификатора функции требуются только типы данных аргументов.argtype
Тип данных аргумента функции, процедуры или агрегата.
left_type
right_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 BE.