{"Entry":{"collection":"sql","key":"alter-extension","name":"ALTER EXTENSION","aliases":["alterextension"],"metadata":{"aliases":["alterextension"],"changed_in":["9.2","9.3","9.4","9.5","9.6","10","11"],"changes":[{"from":"9.0","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"9.1"},{"from":"9.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["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"],"removed":["ALTER EXTENSION extension_name UPDATE [ TO new_version ]","ALTER EXTENSION extension_name SET SCHEMA new_schema","ALTER EXTENSION extension_name ADD member_object","ALTER EXTENSION extension_name DROP member_object"]},"to":"9.2"},{"from":"9.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"changed","synopsis":{"added":["EVENT TRIGGER object_name |","FUNCTION function_name ( [ [ argmode ] [ argname ] argtype [, ...] ] ) |","MATERIALIZED VIEW object_name |"],"removed":[]},"to":"9.3"},{"from":"9.3","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["AGGREGATE aggregate_name ( aggregate_signature ) |","* |","[ argmode ] [ argname ] argtype [ , ... ] |","[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]"],"removed":["AGGREGATE agg_name (agg_type [, ...] ) |"]},"to":"9.4"},{"from":"9.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["TRANSFORM FOR type_name LANGUAGE lang_name |"],"removed":[]},"to":"9.5"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["ACCESS METHOD object_name |"],"removed":[]},"to":"9.6"},{"from":"9.6","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["FUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |"],"removed":[]},"to":"10"},{"from":"10","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["PROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |","ROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |"],"removed":[]},"to":"11"},{"from":"11","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"12"},{"from":"13","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"14"},{"from":"16","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"17"}],"content_hash":"9e39521086113ee81c1f3ec3cda5cafde789b5d930ff4b7f7b5fa39a55ce6e36","editorial":{},"first_version":"9.1","group":"extension","imported_at":"2026-09-30T17:43:38.532453+08:00","last_version":"20","name":"ALTER EXTENSION","object":"EXTENSION","position":7004,"present_in":["9.1","9.2","9.3","9.4","9.5","9.6","10","11","12","13","14","15","16","17","18","19","20"],"purpose":"change the definition of an extension","purpose_zh":"","related":["create-extension","drop-extension"],"slug":"alter-extension","source_rev":"a709ab85","synopsis":"ALTER EXTENSION name UPDATE [ TO new_version ]\nALTER EXTENSION name SET SCHEMA new_schema\nALTER EXTENSION name ADD member_object\nALTER EXTENSION name DROP member_object\nwhere member_object is:\n\nACCESS METHOD object_name |\nAGGREGATE aggregate_name ( aggregate_signature ) |\nCAST (source_type AS target_type) |\nCOLLATION object_name |\nCONVERSION object_name |\nDOMAIN object_name |\nEVENT TRIGGER object_name |\nFOREIGN DATA WRAPPER object_name |\nFOREIGN TABLE object_name |\nFUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nMATERIALIZED VIEW object_name |\nOPERATOR operator_name (left_type, right_type) |\nOPERATOR CLASS object_name USING index_method |\nOPERATOR FAMILY object_name USING index_method |\n[ PROCEDURAL ] LANGUAGE object_name |\nPROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nSCHEMA object_name |\nSEQUENCE object_name |\nSERVER object_name |\nTABLE object_name |\nTEXT SEARCH CONFIGURATION object_name |\nTEXT SEARCH DICTIONARY object_name |\nTEXT SEARCH PARSER object_name |\nTEXT SEARCH TEMPLATE object_name |\nTRANSFORM FOR type_name LANGUAGE lang_name |\nTYPE object_name |\nVIEW object_name\nand aggregate_signature is:\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]","verb":"ALTER"}},"Definition":{"Collection":"sql","Key":"alter-extension","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"alter-extension","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-ALTEREXTENSION","file":"sql-alterextension.html","lang":"en","name":"ALTER EXTENSION","purpose":"change the definition of an extension","purpose_zh":"","related":["create-extension","drop-extension"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e changes the definition of an installed extension. There are several subforms:\u003c/p\u003e\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eUPDATE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form updates the extension to a newer version. The extension must supply a suitable update script (or series of scripts) that can modify the currently-installed version into the requested version.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSET SCHEMA\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form moves the extension's objects into another schema. The extension has to be \u003cem class=\"firstterm\"\u003erelocatable\u003c/em\u003e for this command to succeed.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eADD \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form adds an existing object to the extension. This is mainly useful in extension update scripts. The object will subsequently be treated as a member of the extension; notably, it can only be dropped by dropping the extension.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eDROP \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form removes a member object from the extension. This is mainly useful in extension update scripts. The object is not dropped, only disassociated from the extension.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003eSee \u003ca href=\"/docs/18/extend-extensions.html\" title=\"36.17. Packaging Related Objects into an Extension\"\u003eSection 36.17\u003c/a\u003e for more information about these operations.\u003c/p\u003e\u003cp\u003eYou must own the extension to use \u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e. The \u003ccode class=\"literal\"\u003eADD\u003c/code\u003e/\u003ccode class=\"literal\"\u003eDROP\u003c/code\u003e forms require ownership of the added/dropped object as well.\u003c/p\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an installed extension.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_version\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe desired new version of the extension. This can be written as either an identifier or a string literal. If not specified, \u003ccode class=\"command\"\u003eALTER EXTENSION UPDATE\u003c/code\u003e attempts to update to whatever is shown as the default version in the extension's control file.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_schema\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new schema for the extension.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eoperator_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eprocedure_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eroutine_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an object to be added to or removed from the extension. Names of tables, aggregates, domains, foreign tables, functions, operators, operator classes, operator families, procedures, routines, sequences, text search objects, types, and views can be schema-qualified.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003esource_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the source data type of the cast.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etarget_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the target data type of the cast.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe mode of a function, procedure, or aggregate argument: \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e, \u003ccode class=\"literal\"\u003eOUT\u003c/code\u003e, \u003ccode class=\"literal\"\u003eINOUT\u003c/code\u003e, or \u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e. If omitted, the default is \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e. Note that \u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e does not actually pay any attention to \u003ccode class=\"literal\"\u003eOUT\u003c/code\u003e arguments, since only the input arguments are needed to determine the function's identity. So it is sufficient to list the \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e, \u003ccode class=\"literal\"\u003eINOUT\u003c/code\u003e, and \u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e arguments.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of a function, procedure, or aggregate argument. Note that \u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e does not actually pay any attention to argument names, since only the argument data types are needed to determine the function's identity.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe data type of a function, procedure, or aggregate argument.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eleft_type\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eright_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe data type(s) of the operator's arguments (optionally schema-qualified). Write \u003ccode class=\"literal\"\u003eNONE\u003c/code\u003e for the missing argument of a prefix operator.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003ePROCEDURAL\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis is a noise word.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etype_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the data type of the transform.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003elang_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the language of the transform.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eTo update the \u003ccode class=\"literal\"\u003ehstore\u003c/code\u003e extension to version 2.0:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER EXTENSION hstore UPDATE TO '2.0';\n\u003c/pre\u003e\u003cp\u003eTo change the schema of the \u003ccode class=\"literal\"\u003ehstore\u003c/code\u003e extension to \u003ccode class=\"literal\"\u003eutils\u003c/code\u003e:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER EXTENSION hstore SET SCHEMA utils;\n\u003c/pre\u003e\u003cp\u003eTo add an existing function to the \u003ccode class=\"literal\"\u003ehstore\u003c/code\u003e extension:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e is a \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e extension.\u003c/p\u003e","key":"compatibility","title":"Compatibility"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-extension/?v=18\" title=\"CREATE EXTENSION\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE EXTENSION\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-extension/?v=18\" title=\"DROP EXTENSION\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP EXTENSION\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"ALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e UPDATE [ TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_version\u003c/code\u003e\u003c/em\u003e ]\nALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET SCHEMA \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_schema\u003c/code\u003e\u003c/em\u003e\nALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ADD \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\nALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e DROP \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\n\n\u003cspan class=\"phrase\"\u003ewhere \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e is:\u003c/span\u003e\n\n  ACCESS METHOD \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  AGGREGATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_name\u003c/code\u003e\u003c/em\u003e ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e ) |\n  CAST (\u003cem class=\"replaceable\"\u003e\u003ccode\u003esource_type\u003c/code\u003e\u003c/em\u003e AS \u003cem class=\"replaceable\"\u003e\u003ccode\u003etarget_type\u003c/code\u003e\u003c/em\u003e) |\n  COLLATION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  CONVERSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  DOMAIN \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  EVENT TRIGGER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  FOREIGN DATA WRAPPER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  FOREIGN TABLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  FUNCTION \u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_name\u003c/code\u003e\u003c/em\u003e [ ( [ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [, ...] ] ) ] |\n  MATERIALIZED VIEW \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  OPERATOR \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoperator_name\u003c/code\u003e\u003c/em\u003e (\u003cem class=\"replaceable\"\u003e\u003ccode\u003eleft_type\u003c/code\u003e\u003c/em\u003e, \u003cem class=\"replaceable\"\u003e\u003ccode\u003eright_type\u003c/code\u003e\u003c/em\u003e) |\n  OPERATOR CLASS \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e USING \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_method\u003c/code\u003e\u003c/em\u003e |\n  OPERATOR FAMILY \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e USING \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_method\u003c/code\u003e\u003c/em\u003e |\n  [ PROCEDURAL ] LANGUAGE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  PROCEDURE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eprocedure_name\u003c/code\u003e\u003c/em\u003e [ ( [ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [, ...] ] ) ] |\n  ROUTINE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eroutine_name\u003c/code\u003e\u003c/em\u003e [ ( [ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [, ...] ] ) ] |\n  SCHEMA \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  SEQUENCE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  SERVER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TABLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH CONFIGURATION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH DICTIONARY \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH PARSER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH TEMPLATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TRANSFORM FOR \u003cem class=\"replaceable\"\u003e\u003ccode\u003etype_name\u003c/code\u003e\u003c/em\u003e LANGUAGE \u003cem class=\"replaceable\"\u003e\u003ccode\u003elang_name\u003c/code\u003e\u003c/em\u003e |\n  TYPE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  VIEW \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e\n\n\u003cspan class=\"phrase\"\u003eand \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e is:\u003c/span\u003e\n\n* |\n[ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] |\n[ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] ] ORDER BY [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ]","synopsis_text":"ALTER EXTENSION name UPDATE [ TO new_version ]\nALTER EXTENSION name SET SCHEMA new_schema\nALTER EXTENSION name ADD member_object\nALTER EXTENSION name DROP member_object\nwhere member_object is:\n\nACCESS METHOD object_name |\nAGGREGATE aggregate_name ( aggregate_signature ) |\nCAST (source_type AS target_type) |\nCOLLATION object_name |\nCONVERSION object_name |\nDOMAIN object_name |\nEVENT TRIGGER object_name |\nFOREIGN DATA WRAPPER object_name |\nFOREIGN TABLE object_name |\nFUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nMATERIALIZED VIEW object_name |\nOPERATOR operator_name (left_type, right_type) |\nOPERATOR CLASS object_name USING index_method |\nOPERATOR FAMILY object_name USING index_method |\n[ PROCEDURAL ] LANGUAGE object_name |\nPROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nSCHEMA object_name |\nSEQUENCE object_name |\nSERVER object_name |\nTABLE object_name |\nTEXT SEARCH CONFIGURATION object_name |\nTEXT SEARCH DICTIONARY object_name |\nTEXT SEARCH PARSER object_name |\nTEXT SEARCH TEMPLATE object_name |\nTRANSFORM FOR type_name LANGUAGE lang_name |\nTYPE object_name |\nVIEW object_name\nand aggregate_signature is:\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"alter-extension","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"ALTER EXTENSION","Summary":"更改扩展的定义","BodyHTML":"\u003cpre\u003eALTER EXTENSION name UPDATE [ TO new_version ]\nALTER EXTENSION name SET SCHEMA new_schema\nALTER EXTENSION name ADD member_object\nALTER EXTENSION name DROP member_object\n其中 member_object 是：\n\nACCESS METHOD object_name |\nAGGREGATE aggregate_name ( aggregate_signature ) |\nCAST (source_type AS target_type) |\nCOLLATION object_name |\nCONVERSION object_name |\nDOMAIN object_name |\nEVENT TRIGGER object_name |\nFOREIGN DATA WRAPPER object_name |\nFOREIGN TABLE object_name |\nFUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nMATERIALIZED VIEW object_name |\nOPERATOR operator_name (left_type, right_type) |\nOPERATOR CLASS object_name USING index_method |\nOPERATOR FAMILY object_name USING index_method |\n[ PROCEDURAL ] LANGUAGE object_name |\nPROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nSCHEMA object_name |\nSEQUENCE object_name |\nSERVER object_name |\nTABLE object_name |\nTEXT SEARCH CONFIGURATION object_name |\nTEXT SEARCH DICTIONARY object_name |\nTEXT SEARCH PARSER object_name |\nTEXT SEARCH TEMPLATE object_name |\nTRANSFORM FOR type_name LANGUAGE lang_name |\nTYPE object_name |\nVIEW object_name\n其中 aggregate_signature 是：\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER EXTENSION\u003c/code\u003e更改已安装扩展的定义。其子形式如下：\u003c/p\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eUPDATE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将扩展更新到较新的版本。该扩展必须提供适当的更新脚本（或一系列脚本），能够将当前已安装版本修改为所请求的版本。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eSET SCHEMA\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将扩展的对象移入另一个模式。要使该命令成功，扩展必须是\u003cem\u003e可重定位的\u003c/em\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eADD \u003cem\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将一个现有对象加入扩展。这主要在扩展更新脚本中有用。该对象随后将被视为扩展的成员；特别是，只能通过删除该扩展来删除它。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eDROP \u003cem\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式从扩展中移除一个成员对象。这主要在扩展更新脚本中有用。该对象不会被删除，而只是与扩展解除关联。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003e有关这些操作的更多信息，见\u003ca href=\"/docs/18/extend-extensions.html\" rel=\"nofollow\"\u003e第 36.17 节\u003c/a\u003e。\u003c/p\u003e\u003cp\u003e要使用\u003ccode\u003eALTER EXTENSION\u003c/code\u003e，你必须拥有该扩展。\u003ccode\u003eADD\u003c/code\u003e/\u003ccode\u003eDROP\u003c/code\u003e形式还要求你拥有被添加/移除对象的所有权。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e一个已安装扩展的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003enew_version\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e扩展要更新到的新版本。它可以写成标识符或字符串常量。如果未指定，\u003ccode\u003eALTER EXTENSION UPDATE\u003c/code\u003e会尝试更新到该扩展控制文件中标明的默认版本。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003enew_schema\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e扩展的新模式。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eaggregate_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003efunction_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eoperator_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eprocedure_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eroutine_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要添加到扩展中或从扩展中移除的对象名称。表、聚合、域、外部表、函数、操作符、操作符类、操作符族、过程、例程、序列、文本检索对象、类型和视图的名称可以带模式限定。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003esource_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e类型转换的源数据类型的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003etarget_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e类型转换的目标数据类型的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e函数、过程或聚合函数参数的模式：\u003ccode\u003eIN\u003c/code\u003e、\u003ccode\u003eOUT\u003c/code\u003e、\u003ccode\u003eINOUT\u003c/code\u003e或\u003ccode\u003eVARIADIC\u003c/code\u003e。如果省略，默认值是 \u003ccode\u003eIN\u003c/code\u003e。注意\u003ccode\u003eALTER EXTENSION\u003c/code\u003e 实际上并不关心\u003ccode\u003eOUT\u003c/code\u003e参数，因为确定函数身份只需要输入参数。因此，列出\u003ccode\u003eIN\u003c/code\u003e、\u003ccode\u003eINOUT\u003c/code\u003e和 \u003ccode\u003eVARIADIC\u003c/code\u003e参数就足够了。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e函数、过程或聚合函数参数的名称。注意\u003ccode\u003eALTER EXTENSION\u003c/code\u003e 实际上并不关心参数名称，因为确定函数身份只需要参数数据类型。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e函数、过程或聚合函数参数的数据类型。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eleft_type\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003eright_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e操作符参数的数据类型（可带模式限定）。对于前缀操作符缺失的那个参数，写作\u003ccode\u003eNONE\u003c/code\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003ePROCEDURAL\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这是一个噪声词。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003etype_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该转换的数据类型的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003cem\u003e\u003ccode\u003elang_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该转换的语言的名称。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e将\u003ccode\u003ehstore\u003c/code\u003e扩展更新到版本 2.0：\u003c/p\u003e\u003cpre\u003eALTER EXTENSION hstore UPDATE TO \u0026#39;2.0\u0026#39;;\n\u003c/pre\u003e\u003cp\u003e将\u003ccode\u003ehstore\u003c/code\u003e扩展的模式更改为\u003ccode\u003eutils\u003c/code\u003e：\u003c/p\u003e\u003cpre\u003eALTER EXTENSION hstore SET SCHEMA utils;\n\u003c/pre\u003e\u003cp\u003e将现有函数添加到\u003ccode\u003ehstore\u003c/code\u003e扩展中：\u003c/p\u003e\u003cpre\u003eALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER EXTENSION\u003c/code\u003e是一个\u003cspan\u003ePostgreSQL\u003c/span\u003e 扩展。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e另见\u003c/h2\u003e\u003cspan\u003e\u003ca href=\"/wiki/sql/create-extension/?v=18\" title=\"CREATE EXTENSION\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE EXTENSION\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-extension/?v=18\" title=\"DROP EXTENSION\" rel=\"nofollow\"\u003e\u003cspan\u003eDROP EXTENSION\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"2f6322a4ac3c89732b7151f9a325003f552e00b6ba9cdb54b7774f096beff8b5","Payload":{"purpose_zh":"更改扩展的定义","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e更改已安装扩展的定义。其子形式如下：\u003c/p\u003e\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eUPDATE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将扩展更新到较新的版本。该扩展必须提供适当的更新脚本（或一系列脚本），能够将当前已安装版本修改为所请求的版本。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSET SCHEMA\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将扩展的对象移入另一个模式。要使该命令成功，扩展必须是\u003cem class=\"firstterm\"\u003e可重定位的\u003c/em\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eADD \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将一个现有对象加入扩展。这主要在扩展更新脚本中有用。该对象随后将被视为扩展的成员；特别是，只能通过删除该扩展来删除它。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eDROP \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式从扩展中移除一个成员对象。这主要在扩展更新脚本中有用。该对象不会被删除，而只是与扩展解除关联。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003cp\u003e有关这些操作的更多信息，见\u003ca href=\"/docs/18/extend-extensions.html\" title=\"36.17. 将相关对象打包成扩展\"\u003e第 36.17 节\u003c/a\u003e。\u003c/p\u003e\u003cp\u003e要使用\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e，你必须拥有该扩展。\u003ccode class=\"literal\"\u003eADD\u003c/code\u003e/\u003ccode class=\"literal\"\u003eDROP\u003c/code\u003e形式还要求你拥有被添加/移除对象的所有权。\u003c/p\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e一个已安装扩展的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_version\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e扩展要更新到的新版本。它可以写成标识符或字符串常量。如果未指定，\u003ccode class=\"command\"\u003eALTER EXTENSION UPDATE\u003c/code\u003e会尝试更新到该扩展控制文件中标明的默认版本。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_schema\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e扩展的新模式。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eoperator_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eprocedure_name\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eroutine_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e要添加到扩展中或从扩展中移除的对象名称。表、聚合、域、外部表、函数、操作符、操作符类、操作符族、过程、例程、序列、文本检索对象、类型和视图的名称可以带模式限定。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003esource_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e类型转换的源数据类型的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etarget_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e类型转换的目标数据类型的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e函数、过程或聚合函数参数的模式：\u003ccode class=\"literal\"\u003eIN\u003c/code\u003e、\u003ccode class=\"literal\"\u003eOUT\u003c/code\u003e、\u003ccode class=\"literal\"\u003eINOUT\u003c/code\u003e或\u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e。如果省略，默认值是 \u003ccode class=\"literal\"\u003eIN\u003c/code\u003e。注意\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e 实际上并不关心\u003ccode class=\"literal\"\u003eOUT\u003c/code\u003e参数，因为确定函数身份只需要输入参数。因此，列出\u003ccode class=\"literal\"\u003eIN\u003c/code\u003e、\u003ccode class=\"literal\"\u003eINOUT\u003c/code\u003e和 \u003ccode class=\"literal\"\u003eVARIADIC\u003c/code\u003e参数就足够了。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e函数、过程或聚合函数参数的名称。注意\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e 实际上并不关心参数名称，因为确定函数身份只需要参数数据类型。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e函数、过程或聚合函数参数的数据类型。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eleft_type\u003c/code\u003e\u003c/em\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eright_type\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e操作符参数的数据类型（可带模式限定）。对于前缀操作符缺失的那个参数，写作\u003ccode class=\"literal\"\u003eNONE\u003c/code\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003ePROCEDURAL\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这是一个噪声词。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etype_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该转换的数据类型的名称。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003elang_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e该转换的语言的名称。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"参数"},{"html":"\u003cp\u003e将\u003ccode class=\"literal\"\u003ehstore\u003c/code\u003e扩展更新到版本 2.0：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER EXTENSION hstore UPDATE TO '2.0';\n\u003c/pre\u003e\u003cp\u003e将\u003ccode class=\"literal\"\u003ehstore\u003c/code\u003e扩展的模式更改为\u003ccode class=\"literal\"\u003eutils\u003c/code\u003e：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER EXTENSION hstore SET SCHEMA utils;\n\u003c/pre\u003e\u003cp\u003e将现有函数添加到\u003ccode class=\"literal\"\u003ehstore\u003c/code\u003e扩展中：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER EXTENSION hstore ADD FUNCTION populate_record(anyelement, hstore);\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER EXTENSION\u003c/code\u003e是一个\u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e 扩展。\u003c/p\u003e","key":"compatibility","title":"兼容性"},{"html":"\u003cspan class=\"simplelist\"\u003e\u003ca href=\"/wiki/sql/create-extension/?v=18\" title=\"CREATE EXTENSION\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE EXTENSION\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/drop-extension/?v=18\" title=\"DROP EXTENSION\"\u003e\u003cspan class=\"refentrytitle\"\u003eDROP EXTENSION\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"ALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e UPDATE [ TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_version\u003c/code\u003e\u003c/em\u003e ]\nALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET SCHEMA \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_schema\u003c/code\u003e\u003c/em\u003e\nALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ADD \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\nALTER EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e DROP \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e\n\n\u003cspan class=\"phrase\"\u003e其中 \u003cem class=\"replaceable\"\u003e\u003ccode\u003emember_object\u003c/code\u003e\u003c/em\u003e 是：\u003c/span\u003e\n\n  ACCESS METHOD \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  AGGREGATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_name\u003c/code\u003e\u003c/em\u003e ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e ) |\n  CAST (\u003cem class=\"replaceable\"\u003e\u003ccode\u003esource_type\u003c/code\u003e\u003c/em\u003e AS \u003cem class=\"replaceable\"\u003e\u003ccode\u003etarget_type\u003c/code\u003e\u003c/em\u003e) |\n  COLLATION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  CONVERSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  DOMAIN \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  EVENT TRIGGER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  FOREIGN DATA WRAPPER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  FOREIGN TABLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  FUNCTION \u003cem class=\"replaceable\"\u003e\u003ccode\u003efunction_name\u003c/code\u003e\u003c/em\u003e [ ( [ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [, ...] ] ) ] |\n  MATERIALIZED VIEW \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  OPERATOR \u003cem class=\"replaceable\"\u003e\u003ccode\u003eoperator_name\u003c/code\u003e\u003c/em\u003e (\u003cem class=\"replaceable\"\u003e\u003ccode\u003eleft_type\u003c/code\u003e\u003c/em\u003e, \u003cem class=\"replaceable\"\u003e\u003ccode\u003eright_type\u003c/code\u003e\u003c/em\u003e) |\n  OPERATOR CLASS \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e USING \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_method\u003c/code\u003e\u003c/em\u003e |\n  OPERATOR FAMILY \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e USING \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_method\u003c/code\u003e\u003c/em\u003e |\n  [ PROCEDURAL ] LANGUAGE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  PROCEDURE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eprocedure_name\u003c/code\u003e\u003c/em\u003e [ ( [ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [, ...] ] ) ] |\n  ROUTINE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eroutine_name\u003c/code\u003e\u003c/em\u003e [ ( [ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [, ...] ] ) ] |\n  SCHEMA \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  SEQUENCE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  SERVER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TABLE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH CONFIGURATION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH DICTIONARY \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH PARSER \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TEXT SEARCH TEMPLATE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  TRANSFORM FOR \u003cem class=\"replaceable\"\u003e\u003ccode\u003etype_name\u003c/code\u003e\u003c/em\u003e LANGUAGE \u003cem class=\"replaceable\"\u003e\u003ccode\u003elang_name\u003c/code\u003e\u003c/em\u003e |\n  TYPE \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e |\n  VIEW \u003cem class=\"replaceable\"\u003e\u003ccode\u003eobject_name\u003c/code\u003e\u003c/em\u003e\n\n\u003cspan class=\"phrase\"\u003e其中 \u003cem class=\"replaceable\"\u003e\u003ccode\u003eaggregate_signature\u003c/code\u003e\u003c/em\u003e 是：\u003c/span\u003e\n\n* |\n[ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] |\n[ [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ] ] ORDER BY [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargmode\u003c/code\u003e\u003c/em\u003e ] [ \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargname\u003c/code\u003e\u003c/em\u003e ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003eargtype\u003c/code\u003e\u003c/em\u003e [ , ... ]","synopsis_text":"ALTER EXTENSION name UPDATE [ TO new_version ]\nALTER EXTENSION name SET SCHEMA new_schema\nALTER EXTENSION name ADD member_object\nALTER EXTENSION name DROP member_object\n其中 member_object 是：\n\nACCESS METHOD object_name |\nAGGREGATE aggregate_name ( aggregate_signature ) |\nCAST (source_type AS target_type) |\nCOLLATION object_name |\nCONVERSION object_name |\nDOMAIN object_name |\nEVENT TRIGGER object_name |\nFOREIGN DATA WRAPPER object_name |\nFOREIGN TABLE object_name |\nFUNCTION function_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nMATERIALIZED VIEW object_name |\nOPERATOR operator_name (left_type, right_type) |\nOPERATOR CLASS object_name USING index_method |\nOPERATOR FAMILY object_name USING index_method |\n[ PROCEDURAL ] LANGUAGE object_name |\nPROCEDURE procedure_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nROUTINE routine_name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] |\nSCHEMA object_name |\nSEQUENCE object_name |\nSERVER object_name |\nTABLE object_name |\nTEXT SEARCH CONFIGURATION object_name |\nTEXT SEARCH DICTIONARY object_name |\nTEXT SEARCH PARSER object_name |\nTEXT SEARCH TEMPLATE object_name |\nTRANSFORM FOR type_name LANGUAGE lang_name |\nTYPE object_name |\nVIEW object_name\n其中 aggregate_signature 是：\n\n* |\n[ argmode ] [ argname ] argtype [ , ... ] |\n[ [ argmode ] [ argname ] argtype [ , ... ] ] ORDER BY [ argmode ] [ argname ] argtype [ , ... ]"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
