ALTER TABLESPACE
ALTER TABLESPACE — изменить определение табличного пространства
Синтаксис
ALTER TABLESPACEимяRENAME TOновое_имяALTER TABLESPACEимяOWNER TO {новый_владелец| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER TABLESPACEимяSET (параметр_табличного_пространства=значение[, ... ] ) ALTER TABLESPACEимяRESET (параметр_табличного_пространства[, ... ] )
Описание
ALTER TABLESPACE может применяться для изменения определения табличного пространства.
Чтобы изменить определение табличного пространства, нужно быть его владельцем. Чтобы сменить владельца, нужно быть непосредственным или опосредованным членом новой роли-владельца. (Заметьте, что суперпользователи наделяются этими правами автоматически.)
Параметры
имяИмя существующего табличного пространства.
новое_имяНовое имя табличного пространства. Новое имя не может начинаться с
pg_, так как такие имена зарезервированы для системных табличных пространств.новый_владелецНовый владелец табличного пространства.
параметр_табличного_пространстваУстанавливаемый или сбрасываемый параметр табличного пространства. В настоящее время поддерживаются только параметры
seq_page_cost,random_page_cost,effective_io_concurrency,maintenance_io_concurrencyиcompression. При установке этих значений для заданного табличного пространства будет переопределена обычная оценка стоимости чтения страниц из таблиц в этом пространстве, настраиваемая одноимённым параметром конфигурации (см. seq_page_cost, random_page_cost, effective_io_concurrency). Это может быть полезно, если одно из табличных пространств размещено на диске, который быстрее или медленнее остальной дисковой системы. Сжатие рассматривается в разделе Сжатая файловая система (CFS).
Примеры
Переименование табличного пространства index_space в fast_raid:
ALTER TABLESPACE index_space RENAME TO fast_raid;
Смена владельца табличного пространства index_space:
ALTER TABLESPACE index_space OWNER TO mary;
Совместимость
Оператор ALTER TABLESPACE отсутствует в стандарте SQL.
См. также
CREATE TABLESPACE, DROP TABLESPACEALTER TABLESPACE
ALTER TABLESPACE — change the definition of a tablespace
Synopsis
ALTER TABLESPACEnameRENAME TOnew_nameALTER TABLESPACEnameOWNER TO {new_owner| CURRENT_ROLE | CURRENT_USER | SESSION_USER } ALTER TABLESPACEnameSET (tablespace_option=value[, ... ] ) ALTER TABLESPACEnameRESET (tablespace_option[, ... ] )
Description
ALTER TABLESPACE can be used to change the definition of a tablespace.
You must own the tablespace to change the definition of a tablespace. To alter the owner, you must also be a direct or indirect member of the new owning role. (Note that superusers have these privileges automatically.)
Parameters
nameThe name of an existing tablespace.
new_nameThe new name of the tablespace. The new name cannot begin with
pg_, as such names are reserved for system tablespaces.new_ownerThe new owner of the tablespace.
tablespace_optionA tablespace parameter to be set or reset. Currently, the only available parameters are
seq_page_cost,random_page_cost,effective_io_concurrency,maintenance_io_concurrency, andcompression. Setting these values for a particular tablespace will override the planner's usual estimate of the cost of reading pages from tables in that tablespace, and the executor's prefetching behavior, as established by the configuration parameters of the same name (see seq_page_cost, random_page_cost, effective_io_concurrency, maintenance_io_concurrency). This may be useful if one tablespace is located on a disk which is faster or slower than the remainder of the I/O subsystem. Compression is discussed in the Compressed File System (CFS) section.
Examples
Rename tablespace index_space to fast_raid:
ALTER TABLESPACE index_space RENAME TO fast_raid;
Change the owner of tablespace index_space:
ALTER TABLESPACE index_space OWNER TO mary;
Compatibility
There is no ALTER TABLESPACE statement in the SQL standard.