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