CREATE TABLESPACE

名前

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

概要

CREATE TABLESPACE tablespace_name [ OWNER user_name ] LOCATION 'directory'

説明

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

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

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

パラメータ

tablespace_name

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

user_name

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

directory

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

注釈

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

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

/data/dbsdbspaceテーブル空間を作成します。

CREATE TABLESPACE dbspace LOCATION '/data/dbs';

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

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

互換性

CREATE TABLESPACEPostgreSQLの拡張です。

関連項目

CREATE DATABASE, CREATE TABLE, CREATE INDEX, DROP TABLESPACE, ALTER TABLESPACE