PostgreSQL 8.0.0 文書
前のページ | 巻戻し |  | 早送り | 次のページ

# CREATE DATABASE

## 名前

CREATE DATABASE -- 新しいデータベースの作成

## 概要

    CREATE DATABASE name
        [ [ WITH ] [ OWNER [=] dbowner ]
               [ TEMPLATE [=] template ]
               [ ENCODING [=] encoding ]
               [ TABLESPACE [=] tablespace ] ]

## 説明

`CREATE DATABASE`は新しい PostgreSQLデータベースを作成します。

データベースを作成するためには、スーパーユーザであるか、特別な`CREATEDB`権限が必要です。 CREATE USERを参照してください。

通常、データベースの作成者がその新しいデータベースの所有者になります。 スーパーユーザは、`OWNER`句を使用することにより、他のユーザを所有者とするデータベースを作成できます。 スーパーユーザは、特別な権限を保持していないユーザを所有者とするデータベースを作成できます。 スーパーユーザではない`CREATEDB`権限を保持するユーザは、自分自身が所有するデータベースのみ作成できます。

デフォルトでは、新しいデータベースは標準システムデータベース`template1`を複製することによって作成されます。 別のテンプレートは`TEMPLATE `name``と記述することで指定できます。 特に、`TEMPLATE template0`と記述することで、使用しているPostgreSQLのバージョンによって定義済みの標準オブジェクトのみを持つ新しいデータベースを作ることができます。 これは、もし`template1`に追加された、独自にインストールしたオブジェクトのコピーを避けたいという場合に便利です。

## パラメータ

`name`

  作成するデータベースの名前です。

`dbowner`

  新しいデータベースを所有するデータベースユーザの名前です。 デフォルト設定(つまり、コマンドを実行したユーザ)を使用する場合は`DEFAULT`とします。

`template`

  新しいデータベースを作成元となるテンプレートの名前です。 デフォルトテンプレート(`template1`）を使う場合は`DEFAULT`です。

`encoding`

  新しいデータベースで使われる文字セット符号化方式です。 文字列定数（例えば`'SQL_ASCII'`）、もしくは整数の符号化方式番号、もしくはデフォルトの符号化方式を使う`DEFAULT`です。 PostgreSQLサーバでサポートされる文字セットは項20.2.1で説明します。

`tablespace`

  新しいデータベースに関連付けされるデフォルトのテーブル空間名、もしくは、テンプレートデータベースのテーブル空間を使用することを示す`DEFAULT`です。 このテーブル空間が、このデータベースで作成されるオブジェクトのデフォルトのテーブル空間となります。 詳細はCREATE TABLESPACEを参照してください。

省略可能なパラメータは、上述の順番だけでなく、任意の順番で記述できます。

## 注釈

`CREATE DATABASE`はトランザクションブロックの内側では実行できません。

ほとんどの場合、"could not initialize database directory"という行が含まれるエラーは、データディレクトリの権限不足、ディスク容量不足などファイルシステムについての問題に関連するものです。

データベースを削除するにはDROP DATABASEを使用してください。

createdbプログラムは利便性のために提供される、このコマンドのラッパプログラムです。

`template1`以外のデータベースの名前をテンプレートに指定することによってデータベースをコピーすることは可能ですが、これは(まだ)一般的な目的の"`COPY DATABASE`"機能として意図されているわけではありません。 テンプレートとして使用するデータベースは読み取り専用として扱うことを推奨します。 詳細は項18.3を参照してください。

## 例

新しいデータベースを作成します。

    CREATE DATABASE lusiadas;

`salesapp`ユーザを所有者、`salesspace`をデフォルトのテーブル空間として`sales`データベースを作成します。

    CREATE DATABASE sales OWNER salesapp TABLESPACE salesspace;

ISO-8859-1文字セットをサポートする`music`データベースを作成します。

    CREATE DATABASE music ENCODING 'LATIN1';

## 互換性

標準SQLには`CREATE DATABASE`文はありません。 データベースは、実装で生成が定義されるカタログと同等のものです。

前のページ | ホーム | 次のページ
CREATE CONVERSION | 上に戻る | CREATE DOMAIN