CREATE TABLESPACE(7)

NAME
CREATE TABLESPACE - 新しいテーブル空間を定義する

SYNOPSIS

CREATE TABLESPACE tablespacename [ OWNER username ] LOCATION 'directory'

説明

CREATE TABLESPACEはクラスタ全体で使用できるテーブル空間を新規に登録します。 このテーブル空間名は、データベースクラスタ内の既存のテーブル空間名と異なるものでなければなりません。

テーブル空間を使用すると、スーパーユーザが、データベースオブジェクト（テーブルやインデックスなど）が入ったデータファイルを、ファイルシステム上のどの場所に格納するかを別途定義できます。

適切な権限を持つユーザは、CREATE DATABASEやCREATE TABLE、CREATE INDEX、ADD CONSTRAINTコマンドにtablespacenameを渡すことで、これらのオブジェクトを指定したテーブル空間に格納することができます。

パラメータ

tablespacename
    作成するテーブル空間の名前です。 pg_から始まる名前はシステムのテーブル空間用に予約されているので使用することはできません。

username
    テーブル空間を所有するユーザの名前です。 省略時はデフォルトでコマンドを実行したユーザとなります。 テーブル空間を作成できるのはスーパーユーザのみですが、テーブル空間の所有権を非スーパーユーザに割り当てることは可能です。

directory
    テーブル空間用に使用するディレクトリです。 このディレクトリは空でなければなりません。また、PostgreSQLシステムユーザが所有していなければなりません。 このディレクトリは絶対パス名で指定する必要があります。

注釈

テーブル空間をサポートしているのは、シンボリックリンクをサポートしているシステムのみです。

トランザクションブロック内でCREATE TABLESPACEを実行することはできません。

例

/data/dbsにdbspaceテーブル空間を作成します。

CREATE TABLESPACE dbspace LOCATION '/data/dbs';

/data/indexesに、genevieveユーザが所有するindexspaceテーブル空間を作成します。

CREATE TABLESPACE indexspace OWNER genevieve LOCATION '/data/indexes';

互換性

CREATE TABLESPACEはPostgreSQLの拡張です。

関連項目
CREATE DATABASE [create_database(7)], CREATE TABLE [create_table(7)], CREATE INDEX [create_index(7)], DROP TABLESPACE [drop_tablespace(7)], ALTER TABLESPACE [alter_tablespace(7)]