Name
CREATE DATABASE
--
新規にデータベースを作成する
Synopsis
CREATE DATABASE name [ WITH LOCATION = 'dbpath' ]
入力
- name
作成するデータベースの名前
- dbpath
データベースを所定の場所以外に作成したいときは、バックエンド
サーバが解釈できる環境変数(例えば 'PGDATA2')
あるいは絶対パス(例えば'/usr/local/pgsql/data')
で指定することができます。
どちらの場合でも、データベースを作成する場所をinitlocation
コマンドで事前に設定しておく必要があります。
出力
- CREATEDB
コマンドが正常に終了した場合に返されるメッセージです。
- WARN: createdb: database "name" already exists.
指定されたdatabase がすでに存在するときに
このメッセージが返されます。
- ERROR: Unable to create database directory directory
要求されたディレクトリを作成しようとしましたが問題が発生しました。この操作を行うには、
指定された場所に対してpostgres ユーザの権限がなくてはいけません。
説明
CREATE DATABASE は、新規にPostgresデータベースを
作成します。この操作を行ったユーザが、作成したデータベースの管理者に
なります。
注意
CREATE DATABASEはPostgres独自の
拡張機能で、SQL標準の言語仕様には含まれていません。
作成したデータベースを削除するときはDROP DATABASE
を用います。
使用方法
新規にデータベースを作成する方法:
olly=> create database lusiadas;
所定の場所とは別の場所~/private_dbに新規にデータベースを作成
する方法:
$ mkdir private_db
$ initlocation ~/private_db
Creating Postgres database system directory /home/olly/private_db/base
$ psql olly
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL
type \? for help on slash commands
type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: template1
olly=> create database elsewhere with location = '/home/olly/private_db';
CREATEDB
バグ情報
所定の場所とは別の場所を絶対パスで指定してデータベースを
作成するとセキュリティおよびデータの整合性に問題が発生し
ます。デフォルトでは、所定の場所と違う場所は、バックエンド
サーバが解釈できる環境変数でのみ指定します。
詳細な情報を知りたい場合は管理者ガイドを参照してください。
互換性
SQL92
SQL92にはCREATE DATABASEというコマンドは存在しません。
SQL標準のCREATE SCHEMAコマンドに相当するものです。