{"Entry":{"collection":"sql","key":"alter-index","name":"ALTER INDEX","aliases":["alterindex"],"metadata":{"aliases":["alterindex"],"changed_in":["8.1","8.2","9.2","9.4","9.5","9.6","11","13"],"changes":[{"from":"7.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":[],"removed":[]},"status":"added","synopsis":null,"to":"8.0"},{"from":"8.0","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","notes","examples"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX name SET TABLESPACE tablespace_name"],"removed":["ALTER INDEX name","action [, ... ]","where action is one of:","OWNER TO new_owner","SET TABLESPACE indexspace_name"]},"to":"8.1"},{"from":"8.1","purpose_changed":false,"renamed":null,"sections":{"added":["see_also"],"changed":["description","parameters","examples"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX name SET ( storage_parameter = value [, ... ] )","ALTER INDEX name RESET ( storage_parameter [, ... ] )"],"removed":[]},"to":"8.2"},{"from":"8.2","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":null,"to":"8.3"},{"from":"9.1","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX [ IF EXISTS ] name RENAME TO new_name","ALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name","ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter = value [, ... ] )","ALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )"],"removed":[]},"to":"9.2"},{"from":"9.3","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]","SET TABLESPACE new_tablespace [ NOWAIT ]"],"removed":[]},"to":"9.4"},{"from":"9.4","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] )"],"removed":[]},"to":"9.5"},{"from":"9.5","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX name DEPENDS ON EXTENSION extension_name"],"removed":[]},"to":"9.6"},{"from":"10","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description","parameters","examples"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX name ATTACH PARTITION index_name","ALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number","SET STATISTICS integer","ALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]"],"removed":[]},"to":"11"},{"from":"11","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"12"},{"from":"12","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":{"added":["ALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name"],"removed":[]},"to":"13"},{"from":"13","purpose_changed":false,"renamed":null,"sections":{"added":[],"changed":["description"],"removed":[]},"status":"changed","synopsis":null,"to":"14"}],"content_hash":"98f4b3983a9d84697f6733b98b0f08b18667f0393503b36d12d457d6484fcfbc","editorial":{},"first_version":"8.0","group":"index","imported_at":"2026-09-30T17:43:36.908403+08:00","last_version":"20","name":"ALTER INDEX","object":"INDEX","position":1002,"present_in":["8.0","8.1","8.2","8.3","8.4","9.0","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 index","purpose_zh":"","related":["create-index","reindex"],"slug":"alter-index","source_rev":"a709ab85","synopsis":"ALTER INDEX [ IF EXISTS ] name RENAME TO new_name\nALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name\nALTER INDEX name ATTACH PARTITION index_name\nALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name\nALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] )\nALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )\nALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number\nSET STATISTICS integer\nALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]\nSET TABLESPACE new_tablespace [ NOWAIT ]","verb":"ALTER"}},"Definition":{"Collection":"sql","Key":"alter-index","SourceDatabase":"center","Version":"18","SourceTable":"sqlcmd","SourceKey":"alter-index","SourceRevision":"a709ab85","Facts":{"anchor":"SQL-ALTERINDEX","file":"sql-alterindex.html","lang":"en","name":"ALTER INDEX","purpose":"change the definition of an index","purpose_zh":"","related":["create-index","reindex"],"sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER INDEX\u003c/code\u003e changes the definition of an existing index. There are several subforms described below. Note that the lock level required may differ for each subform. An \u003ccode class=\"literal\"\u003eACCESS EXCLUSIVE\u003c/code\u003e lock is held unless explicitly noted. When multiple subcommands are listed, the lock held will be the strictest one required from any subcommand.\u003c/p\u003e\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRENAME\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe \u003ccode class=\"literal\"\u003eRENAME\u003c/code\u003e form changes the name of the index. If the index is associated with a table constraint (either \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e, \u003ccode class=\"literal\"\u003ePRIMARY KEY\u003c/code\u003e, or \u003ccode class=\"literal\"\u003eEXCLUDE\u003c/code\u003e), the constraint is renamed as well. There is no effect on the stored data.\u003c/p\u003e\u003cp\u003eRenaming an index acquires a \u003ccode class=\"literal\"\u003eSHARE UPDATE EXCLUSIVE\u003c/code\u003e lock.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSET TABLESPACE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form changes the index's tablespace to the specified tablespace and moves the data file(s) associated with the index to the new tablespace. To change the tablespace of an index, you must own the index and have \u003ccode class=\"literal\"\u003eCREATE\u003c/code\u003e privilege on the new tablespace. All indexes in the current database in a tablespace can be moved by using the \u003ccode class=\"literal\"\u003eALL IN TABLESPACE\u003c/code\u003e form, which will lock all indexes to be moved and then move each one. This form also supports \u003ccode class=\"literal\"\u003eOWNED BY\u003c/code\u003e, which will only move indexes owned by the roles specified. If the \u003ccode class=\"literal\"\u003eNOWAIT\u003c/code\u003e option is specified then the command will fail if it is unable to acquire all of the locks required immediately. Note that system catalogs will not be moved by this command, use \u003ccode class=\"command\"\u003eALTER DATABASE\u003c/code\u003e or explicit \u003ccode class=\"command\"\u003eALTER INDEX\u003c/code\u003e invocations instead if desired. See also \u003ca href=\"/docs/18/sql-createtablespace.html\" title=\"CREATE TABLESPACE\"\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eATTACH PARTITION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eCauses the named index (possibly schema-qualified) to become attached to the altered index. The named index must be on a partition of the table containing the index being altered, and have an equivalent definition. An attached index cannot be dropped by itself, and will automatically be dropped if its parent index is dropped.\u003c/p\u003e\u003cp\u003eIf the named index is already attached to the altered index, the command will attempt to validate the parent index if the parent is currently invalid.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eDEPENDS ON EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNO DEPENDS ON EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form marks the index as dependent on the extension, or no longer dependent on that extension if \u003ccode class=\"literal\"\u003eNO\u003c/code\u003e is specified. An index that's marked as dependent on an extension is automatically dropped when the extension is dropped.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [= \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e] [, ... ] )\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form changes one or more index-method-specific storage parameters for the index. See \u003ca href=\"/docs/18/sql-createindex.html\" title=\"CREATE INDEX\"\u003e\u003ccode class=\"command\"\u003eCREATE INDEX\u003c/code\u003e\u003c/a\u003e for details on the available parameters. Note that the index contents will not be modified immediately by this command; depending on the parameter you might need to rebuild the index with \u003ca href=\"/docs/18/sql-reindex.html\" title=\"REINDEX\"\u003e\u003ccode class=\"command\"\u003eREINDEX\u003c/code\u003e\u003c/a\u003e to get the desired effects.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [, ... ] )\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form resets one or more index-method-specific storage parameters to their defaults. As with \u003ccode class=\"literal\"\u003eSET\u003c/code\u003e, a \u003ccode class=\"literal\"\u003eREINDEX\u003c/code\u003e might be needed to update the index entirely.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eALTER [ COLUMN ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ecolumn_number\u003c/code\u003e\u003c/em\u003e SET STATISTICS \u003cem class=\"replaceable\"\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThis form sets the per-column statistics-gathering target for subsequent \u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003ccode class=\"command\"\u003eANALYZE\u003c/code\u003e\u003c/a\u003e operations, though can be used only on index columns that are defined as an expression. Since expressions lack a unique name, we refer to them using the ordinal number of the index column. The target can be set in the range 0 to 10000; alternatively, set it to -1 to revert to using the system default statistics target (\u003ca href=\"/docs/18/runtime-config-query.html#GUC-DEFAULT-STATISTICS-TARGET\"\u003edefault_statistics_target\u003c/a\u003e). For more information on the use of statistics by the \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e query planner, refer to \u003ca href=\"/docs/18/planner-stats.html\" title=\"14.2. Statistics Used by the Planner\"\u003eSection 14.2\u003c/a\u003e.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"description","title":"Description"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eDo not throw an error if the index does not exist. A notice is issued in this case.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003ecolumn_number\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe ordinal number refers to the ordinal (left-to-right) position of the index column.\u003c/p\u003e\u003c/dd\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 (possibly schema-qualified) of an existing index to alter.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new name for the index.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe tablespace to which the index will be moved.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of the extension that the index is to depend on.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe name of an index-method-specific storage parameter.\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003eThe new value for an index-method-specific storage parameter. This might be a number or a word depending on the parameter.\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"parameters","title":"Parameters"},{"html":"\u003cp\u003eThese operations are also possible using \u003ca href=\"/docs/18/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003ccode class=\"command\"\u003eALTER TABLE\u003c/code\u003e\u003c/a\u003e. \u003ccode class=\"command\"\u003eALTER INDEX\u003c/code\u003e is in fact just an alias for the forms of \u003ccode class=\"command\"\u003eALTER TABLE\u003c/code\u003e that apply to indexes.\u003c/p\u003e\u003cp\u003eThere was formerly an \u003ccode class=\"command\"\u003eALTER INDEX OWNER\u003c/code\u003e variant, but this is now ignored (with a warning). An index cannot have an owner different from its table's owner. Changing the table's owner automatically changes the index as well.\u003c/p\u003e\u003cp\u003eChanging any part of a system catalog index is not permitted.\u003c/p\u003e","key":"notes","title":"Notes"},{"html":"\u003cp\u003eTo rename an existing index:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER INDEX distributors RENAME TO suppliers;\n\u003c/pre\u003e\u003cp\u003eTo move an index to a different tablespace:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER INDEX distributors SET TABLESPACE fasttablespace;\n\u003c/pre\u003e\u003cp\u003eTo change an index's fill factor (assuming that the index method supports it):\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER INDEX distributors SET (fillfactor = 75);\nREINDEX INDEX distributors;\n\u003c/pre\u003e\u003cp\u003eSet the statistics-gathering target for an expression index:\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eCREATE INDEX coord_idx ON measured (x, y, (z + t));\nALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000;\n\u003c/pre\u003e","key":"examples","title":"Examples"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER INDEX\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-index/?v=18\" title=\"CREATE INDEX\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE INDEX\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/reindex/?v=18\" title=\"REINDEX\"\u003e\u003cspan class=\"refentrytitle\"\u003eREINDEX\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"See Also"}],"sections_same_as":"","slug":"18","synopsis_html":"ALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RENAME TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ATTACH PARTITION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ NO ] DEPENDS ON EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [= \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e] [, ... ] )\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RESET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [, ... ] )\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ALTER [ COLUMN ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ecolumn_number\u003c/code\u003e\u003c/em\u003e\n    SET STATISTICS \u003cem class=\"replaceable\"\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/em\u003e\nALTER INDEX ALL IN TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ OWNED BY \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_name\u003c/code\u003e\u003c/em\u003e [, ... ] ]\n    SET TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e [ NOWAIT ]","synopsis_text":"ALTER INDEX [ IF EXISTS ] name RENAME TO new_name\nALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name\nALTER INDEX name ATTACH PARTITION index_name\nALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name\nALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] )\nALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )\nALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number\nSET STATISTICS integer\nALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]\nSET TABLESPACE new_tablespace [ NOWAIT ]"},"ManualEvidence":{},"MeasuredEvidence":{}},"Text":{"Collection":"sql","Key":"alter-index","SourceDatabase":"pgweb","Version":"18","Locale":"zh-Hans","Title":"ALTER INDEX","Summary":"更改索引的定义","BodyHTML":"\u003cpre\u003eALTER INDEX [ IF EXISTS ] name RENAME TO new_name\nALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name\nALTER INDEX name ATTACH PARTITION index_name\nALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name\nALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] )\nALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )\nALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number\nSET STATISTICS integer\nALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]\nSET TABLESPACE new_tablespace [ NOWAIT ]\u003c/pre\u003e\u003csection\u003e\u003ch2\u003e描述\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER INDEX\u003c/code\u003e更改现有索引的定义。下面描述了若干种子形式。请注意，每种子形式所需的锁级别可能不同。除非另有明确说明，否则会持有 \u003ccode\u003eACCESS EXCLUSIVE\u003c/code\u003e锁。若列出多个子命令，则持有的锁将是其中任一子命令所需的最严格锁。\u003c/p\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eRENAME\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\u003ccode\u003eRENAME\u003c/code\u003e形式更改该索引的名称。如果该索引与某个表约束（即 \u003ccode\u003eUNIQUE\u003c/code\u003e、\u003ccode\u003ePRIMARY KEY\u003c/code\u003e或 \u003ccode\u003eEXCLUDE\u003c/code\u003e）相关联，该约束也会一并重命名。这不会影响已存储的数据。\u003c/p\u003e\u003cp\u003e重命名索引会获取一个\u003ccode\u003eSHARE UPDATE EXCLUSIVE\u003c/code\u003e锁。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eSET TABLESPACE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将该索引的表空间改为指定表空间，并把与该索引关联的数据文件移动到新表空间中。要更改索引的表空间，你必须拥有该索引，并且对新表空间具有 \u003ccode\u003eCREATE\u003c/code\u003e权限。使用\u003ccode\u003eALL IN TABLESPACE\u003c/code\u003e 形式可以移动当前数据库中某个表空间内的全部索引；该形式会锁定所有待移动的索引，然后逐个移动。该形式还支持\u003ccode\u003eOWNED BY\u003c/code\u003e，这时只会移动属于指定角色的索引。如果指定了\u003ccode\u003eNOWAIT\u003c/code\u003e选项，则在命令无法立即获取所需全部锁时会失败。注意，该命令不会移动系统目录；如果需要这样做，应改用\u003ccode\u003eALTER DATABASE\u003c/code\u003e 或显式调用\u003ccode\u003eALTER INDEX\u003c/code\u003e。另见 \u003ca href=\"/docs/18/sql-createtablespace.html\" title=\"CREATE TABLESPACE\" rel=\"nofollow\"\u003e\u003ccode\u003eCREATE TABLESPACE\u003c/code\u003e\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eATTACH PARTITION \u003cem\u003e\u003ccode\u003eindex_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e使指定名称的索引（可以带模式限定）附加到被修改的索引上。该索引必须位于包含被修改索引之表的某个分区上，并且具有等价定义。已附加的索引不能单独删除；如果其父索引被删除，它也会自动被删除。\u003c/p\u003e\u003cp\u003e如果指定名称的索引已经附加到被修改的索引，并且父索引当前无效，该命令将尝试验证父索引。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eDEPENDS ON EXTENSION \u003cem\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan\u003e\u003ccode\u003eNO DEPENDS ON EXTENSION \u003cem\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式会将索引标记为依赖于该扩展；如果指定了\u003ccode\u003eNO\u003c/code\u003e，则表示不再依赖该扩展。标记为依赖于扩展的索引会在扩展被删除时自动删除。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eSET ( \u003cem\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [= \u003cem\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e] [, ... ] )\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式更改该索引的一个或多个索引方法相关的存储参数。可用参数的详情请见 \u003ca href=\"/docs/18/sql-createindex.html\" title=\"CREATE INDEX\" rel=\"nofollow\"\u003e\u003ccode\u003eCREATE INDEX\u003c/code\u003e\u003c/a\u003e。请注意，此命令不会立即修改索引内容；根据参数不同，你可能需要使用 \u003ca href=\"/docs/18/sql-reindex.html\" title=\"REINDEX\" rel=\"nofollow\"\u003e\u003ccode\u003eREINDEX\u003c/code\u003e\u003c/a\u003e 重建索引，才能获得期望的效果。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eRESET ( \u003cem\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [, ... ] )\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将一个或多个索引方法相关的存储参数重置为默认值。与 \u003ccode\u003eSET\u003c/code\u003e一样，可能仍需要执行一次\u003ccode\u003eREINDEX\u003c/code\u003e 才能让该索引被完全更新。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eALTER [ COLUMN ] \u003cem\u003e\u003ccode\u003ecolumn_number\u003c/code\u003e\u003c/em\u003e SET STATISTICS \u003cem\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式为后续的\u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\" rel=\"nofollow\"\u003e\u003ccode\u003eANALYZE\u003c/code\u003e\u003c/a\u003e操作设置每列的统计信息收集目标，但只能用于定义为表达式的索引列。由于表达式没有唯一名称，我们通过索引列的顺序号来引用它们。该目标可以设置为0到10000之间的值；或者设为-1，以恢复使用系统默认统计信息目标（\u003ca href=\"/docs/18/runtime-config-query.html#GUC-DEFAULT-STATISTICS-TARGET\" rel=\"nofollow\"\u003edefault_statistics_target\u003c/a\u003e）。关于 \u003cspan\u003ePostgreSQL\u003c/span\u003e查询规划器如何使用统计信息的更多信息，请参阅\u003ca href=\"/docs/18/planner-stats.html\" rel=\"nofollow\"\u003e第 14.2 节\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e参数\u003c/h2\u003e\u003cdiv\u003e\u003cdl\u003e\u003cdt\u003e\u003cspan\u003e\u003ccode\u003eIF EXISTS\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\u003ecolumn_number\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\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_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\u003etablespace_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\u003eextension_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\u003estorage_parameter\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\u003evalue\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这些操作同样可以使用 \u003ca href=\"/docs/18/sql-altertable.html\" title=\"ALTER TABLE\" rel=\"nofollow\"\u003e\u003ccode\u003eALTER TABLE\u003c/code\u003e\u003c/a\u003e完成。实际上，\u003ccode\u003eALTER INDEX\u003c/code\u003e只是\u003ccode\u003eALTER TABLE\u003c/code\u003e 中适用于索引的那些形式的别名。\u003c/p\u003e\u003cp\u003e以前曾有一种\u003ccode\u003eALTER INDEX OWNER\u003c/code\u003e变体，但现在会被忽略（同时发出警告）。索引的拥有者不能不同于其所属表的拥有者。更改表的拥有者时，索引的拥有者也会自动更改。\u003c/p\u003e\u003cp\u003e不允许更改系统目录索引的任何部分。\u003c/p\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e示例\u003c/h2\u003e\u003cp\u003e要重命名现有索引：\u003c/p\u003e\u003cpre\u003eALTER INDEX distributors RENAME TO suppliers;\n\u003c/pre\u003e\u003cp\u003e要将索引移到另一个表空间：\u003c/p\u003e\u003cpre\u003eALTER INDEX distributors SET TABLESPACE fasttablespace;\n\u003c/pre\u003e\u003cp\u003e要更改索引的填充因子（假设该索引方法支持fillfactor参数）：\u003c/p\u003e\u003cpre\u003eALTER INDEX distributors SET (fillfactor = 75);\nREINDEX INDEX distributors;\n\u003c/pre\u003e\u003cp\u003e要为表达式索引设置统计信息收集目标：\u003c/p\u003e\u003cpre\u003eCREATE INDEX coord_idx ON measured (x, y, (z + t));\nALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000;\n\u003c/pre\u003e\u003c/section\u003e\u003csection\u003e\u003ch2\u003e兼容性\u003c/h2\u003e\u003cp\u003e\u003ccode\u003eALTER INDEX\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-index/?v=18\" title=\"CREATE INDEX\" rel=\"nofollow\"\u003e\u003cspan\u003eCREATE INDEX\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/reindex/?v=18\" title=\"REINDEX\" rel=\"nofollow\"\u003e\u003cspan\u003eREINDEX\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e\u003c/section\u003e","SourceRevision":"1b5ca64c","ContentHash":"89e96e36782d1cc4dc0394ec8b03436ec48e240f90607f48949d753465ca7435","Payload":{"purpose_zh":"更改索引的定义","sections":[{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER INDEX\u003c/code\u003e更改现有索引的定义。下面描述了若干种子形式。请注意，每种子形式所需的锁级别可能不同。除非另有明确说明，否则会持有 \u003ccode class=\"literal\"\u003eACCESS EXCLUSIVE\u003c/code\u003e锁。若列出多个子命令，则持有的锁将是其中任一子命令所需的最严格锁。\u003c/p\u003e\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRENAME\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e\u003ccode class=\"literal\"\u003eRENAME\u003c/code\u003e形式更改该索引的名称。如果该索引与某个表约束（即 \u003ccode class=\"literal\"\u003eUNIQUE\u003c/code\u003e、\u003ccode class=\"literal\"\u003ePRIMARY KEY\u003c/code\u003e或 \u003ccode class=\"literal\"\u003eEXCLUDE\u003c/code\u003e）相关联，该约束也会一并重命名。这不会影响已存储的数据。\u003c/p\u003e\u003cp\u003e重命名索引会获取一个\u003ccode class=\"literal\"\u003eSHARE UPDATE EXCLUSIVE\u003c/code\u003e锁。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSET TABLESPACE\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将该索引的表空间改为指定表空间，并把与该索引关联的数据文件移动到新表空间中。要更改索引的表空间，你必须拥有该索引，并且对新表空间具有 \u003ccode class=\"literal\"\u003eCREATE\u003c/code\u003e权限。使用\u003ccode class=\"literal\"\u003eALL IN TABLESPACE\u003c/code\u003e 形式可以移动当前数据库中某个表空间内的全部索引；该形式会锁定所有待移动的索引，然后逐个移动。该形式还支持\u003ccode class=\"literal\"\u003eOWNED BY\u003c/code\u003e，这时只会移动属于指定角色的索引。如果指定了\u003ccode class=\"literal\"\u003eNOWAIT\u003c/code\u003e选项，则在命令无法立即获取所需全部锁时会失败。注意，该命令不会移动系统目录；如果需要这样做，应改用\u003ccode class=\"command\"\u003eALTER DATABASE\u003c/code\u003e 或显式调用\u003ccode class=\"command\"\u003eALTER INDEX\u003c/code\u003e。另见 \u003ca href=\"/docs/18/sql-createtablespace.html\" title=\"CREATE TABLESPACE\"\u003e\u003ccode class=\"command\"\u003eCREATE TABLESPACE\u003c/code\u003e\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eATTACH PARTITION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e使指定名称的索引（可以带模式限定）附加到被修改的索引上。该索引必须位于包含被修改索引之表的某个分区上，并且具有等价定义。已附加的索引不能单独删除；如果其父索引被删除，它也会自动被删除。\u003c/p\u003e\u003cp\u003e如果指定名称的索引已经附加到被修改的索引，并且父索引当前无效，该命令将尝试验证父索引。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eDEPENDS ON EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003cbr\u003e\u003c/span\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eNO DEPENDS ON EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式会将索引标记为依赖于该扩展；如果指定了\u003ccode class=\"literal\"\u003eNO\u003c/code\u003e，则表示不再依赖该扩展。标记为依赖于扩展的索引会在扩展被删除时自动删除。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eSET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [= \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e] [, ... ] )\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式更改该索引的一个或多个索引方法相关的存储参数。可用参数的详情请见 \u003ca href=\"/docs/18/sql-createindex.html\" title=\"CREATE INDEX\"\u003e\u003ccode class=\"command\"\u003eCREATE INDEX\u003c/code\u003e\u003c/a\u003e。请注意，此命令不会立即修改索引内容；根据参数不同，你可能需要使用 \u003ca href=\"/docs/18/sql-reindex.html\" title=\"REINDEX\"\u003e\u003ccode class=\"command\"\u003eREINDEX\u003c/code\u003e\u003c/a\u003e 重建索引，才能获得期望的效果。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eRESET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [, ... ] )\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式将一个或多个索引方法相关的存储参数重置为默认值。与 \u003ccode class=\"literal\"\u003eSET\u003c/code\u003e一样，可能仍需要执行一次\u003ccode class=\"literal\"\u003eREINDEX\u003c/code\u003e 才能让该索引被完全更新。\u003c/p\u003e\u003c/dd\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eALTER [ COLUMN ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ecolumn_number\u003c/code\u003e\u003c/em\u003e SET STATISTICS \u003cem class=\"replaceable\"\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/em\u003e\u003c/code\u003e\u003c/span\u003e\u003c/dt\u003e\u003cdd\u003e\u003cp\u003e这种形式为后续的\u003ca href=\"/docs/18/sql-analyze.html\" title=\"ANALYZE\"\u003e\u003ccode class=\"command\"\u003eANALYZE\u003c/code\u003e\u003c/a\u003e操作设置每列的统计信息收集目标，但只能用于定义为表达式的索引列。由于表达式没有唯一名称，我们通过索引列的顺序号来引用它们。该目标可以设置为0到10000之间的值；或者设为-1，以恢复使用系统默认统计信息目标（\u003ca href=\"/docs/18/runtime-config-query.html#GUC-DEFAULT-STATISTICS-TARGET\"\u003edefault_statistics_target\u003c/a\u003e）。关于 \u003cspan class=\"productname\"\u003ePostgreSQL\u003c/span\u003e查询规划器如何使用统计信息的更多信息，请参阅\u003ca href=\"/docs/18/planner-stats.html\" title=\"14.2. 规划器使用的统计信息\"\u003e第 14.2 节\u003c/a\u003e。\u003c/p\u003e\u003c/dd\u003e\u003c/dl\u003e\u003c/div\u003e","key":"description","title":"描述"},{"html":"\u003cdiv class=\"variablelist\"\u003e\u003cdl class=\"variablelist\"\u003e\u003cdt\u003e\u003cspan class=\"term\"\u003e\u003ccode class=\"literal\"\u003eIF EXISTS\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\u003ecolumn_number\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\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_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\u003etablespace_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\u003eextension_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\u003estorage_parameter\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\u003evalue\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这些操作同样可以使用 \u003ca href=\"/docs/18/sql-altertable.html\" title=\"ALTER TABLE\"\u003e\u003ccode class=\"command\"\u003eALTER TABLE\u003c/code\u003e\u003c/a\u003e完成。实际上，\u003ccode class=\"command\"\u003eALTER INDEX\u003c/code\u003e只是\u003ccode class=\"command\"\u003eALTER TABLE\u003c/code\u003e 中适用于索引的那些形式的别名。\u003c/p\u003e\u003cp\u003e以前曾有一种\u003ccode class=\"command\"\u003eALTER INDEX OWNER\u003c/code\u003e变体，但现在会被忽略（同时发出警告）。索引的拥有者不能不同于其所属表的拥有者。更改表的拥有者时，索引的拥有者也会自动更改。\u003c/p\u003e\u003cp\u003e不允许更改系统目录索引的任何部分。\u003c/p\u003e","key":"notes","title":"注解"},{"html":"\u003cp\u003e要重命名现有索引：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER INDEX distributors RENAME TO suppliers;\n\u003c/pre\u003e\u003cp\u003e要将索引移到另一个表空间：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER INDEX distributors SET TABLESPACE fasttablespace;\n\u003c/pre\u003e\u003cp\u003e要更改索引的填充因子（假设该索引方法支持fillfactor参数）：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eALTER INDEX distributors SET (fillfactor = 75);\nREINDEX INDEX distributors;\n\u003c/pre\u003e\u003cp\u003e要为表达式索引设置统计信息收集目标：\u003c/p\u003e\u003cpre class=\"programlisting\"\u003eCREATE INDEX coord_idx ON measured (x, y, (z + t));\nALTER INDEX coord_idx ALTER COLUMN 3 SET STATISTICS 1000;\n\u003c/pre\u003e","key":"examples","title":"示例"},{"html":"\u003cp\u003e\u003ccode class=\"command\"\u003eALTER INDEX\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-index/?v=18\" title=\"CREATE INDEX\"\u003e\u003cspan class=\"refentrytitle\"\u003eCREATE INDEX\u003c/span\u003e\u003c/a\u003e, \u003ca href=\"/wiki/sql/reindex/?v=18\" title=\"REINDEX\"\u003e\u003cspan class=\"refentrytitle\"\u003eREINDEX\u003c/span\u003e\u003c/a\u003e\u003c/span\u003e","key":"see_also","title":"另见"}],"sections_same_as":"","synopsis_html":"ALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RENAME TO \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003etablespace_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ATTACH PARTITION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eindex_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ NO ] DEPENDS ON EXTENSION \u003cem class=\"replaceable\"\u003e\u003ccode\u003eextension_name\u003c/code\u003e\u003c/em\u003e\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e SET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [= \u003cem class=\"replaceable\"\u003e\u003ccode\u003evalue\u003c/code\u003e\u003c/em\u003e] [, ... ] )\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e RESET ( \u003cem class=\"replaceable\"\u003e\u003ccode\u003estorage_parameter\u003c/code\u003e\u003c/em\u003e [, ... ] )\nALTER INDEX [ IF EXISTS ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e ALTER [ COLUMN ] \u003cem class=\"replaceable\"\u003e\u003ccode\u003ecolumn_number\u003c/code\u003e\u003c/em\u003e\n    SET STATISTICS \u003cem class=\"replaceable\"\u003e\u003ccode\u003einteger\u003c/code\u003e\u003c/em\u003e\nALTER INDEX ALL IN TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003ename\u003c/code\u003e\u003c/em\u003e [ OWNED BY \u003cem class=\"replaceable\"\u003e\u003ccode\u003erole_name\u003c/code\u003e\u003c/em\u003e [, ... ] ]\n    SET TABLESPACE \u003cem class=\"replaceable\"\u003e\u003ccode\u003enew_tablespace\u003c/code\u003e\u003c/em\u003e [ NOWAIT ]","synopsis_text":"ALTER INDEX [ IF EXISTS ] name RENAME TO new_name\nALTER INDEX [ IF EXISTS ] name SET TABLESPACE tablespace_name\nALTER INDEX name ATTACH PARTITION index_name\nALTER INDEX name [ NO ] DEPENDS ON EXTENSION extension_name\nALTER INDEX [ IF EXISTS ] name SET ( storage_parameter [= value] [, ... ] )\nALTER INDEX [ IF EXISTS ] name RESET ( storage_parameter [, ... ] )\nALTER INDEX [ IF EXISTS ] name ALTER [ COLUMN ] column_number\nSET STATISTICS integer\nALTER INDEX ALL IN TABLESPACE name [ OWNED BY role_name [, ... ] ]\nSET TABLESPACE new_tablespace [ NOWAIT ]"}},"RequestedLocale":"zh-Hans","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","8.0","8.1","8.2","8.3","8.4","9.0","9.1","9.2","9.3","9.4","9.5","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
