CREATE TABLESPACE
Синтаксис
CREATE TABLESPACE табл_пространство [ OWNER имя_пользователя ] LOCATION 'каталог' [ WITH ( параметр_табличного пространства = значение [, ... ] ) ]
Описание
CREATE TABLESPACE регистрирует новое табличное пространство на уровне кластера баз данных. Имя табличного пространства должно отличаться от имён уже существующих табличных пространств в кластере.
Табличные пространства позволяют суперпользователям определять альтернативные расположения в файловой системе, где могут находиться файлы, содержащие объекты базы данных (например, таблицы или индексы).
Пользователь, имеющий соответствующие права, может передать параметр табл_пространство команде CREATE DATABASE, CREATE TABLE, CREATE INDEX или ADD CONSTRAINT, чтобы файлы данных для этих объектов хранились в указанном табличном пространстве.
Внимание |
Табличное пространство нельзя использовать отдельно от кластера, в котором оно было определено; см. Раздел 21.6. |
Параметры
- табл_пространство
Имя создаваемого табличного пространства. Это имя не может начинаться с pg_, так как такие имена зарезервированы для системных табличных пространств.
- имя_пользователя
Имя пользователя, который будет владельцем табличного пространства. Если опущено, владельцем по умолчанию станет пользователь, выполняющий команду. Создавать пространства имён могут только суперпользователи, но их владельцами могут быть назначены и обычные пользователи.
- каталог
Каталог, который будет использован для этого табличного пространства. Этот каталог должен быть пустым и должен принадлежать системному пользователю PostgreSQL. Задаваться его расположение должно абсолютным путём.
- параметр_табличного пространства
Устанавливаемый или сбрасываемый параметр табличного пространства. В настоящее время поддерживаются только параметры seq_page_cost и random_page_cost. При установке этих значений для заданного табличного пространства будет переопределена обычная оценка стоимости чтения страниц из таблиц в этом пространстве, настраиваемая одноимённым параметром конфигурации (см. seq_page_cost, random_page_cost). Это может быть полезно, если одно из табличных пространств размещено на диске, который быстрее или медленнее остальной дисковой системы.
Замечания
Табличные пространства поддерживаются только на платформах, поддерживающих символические ссылки.
CREATE TABLESPACE не может быть выполнена внутри блока транзакции.
Примеры
Создание табличного пространства dbspace в /data/dbs:
CREATE TABLESPACE dbspace LOCATION '/data/dbs';
Создание табличного пространства indexspace в /data/indexes и назначение его владельцем genevieve:
CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';
Пред. | Начало | След. |
CREATE TABLE AS | Уровень выше | CREATE TEXT SEARCH CONFIGURATION |