PostgreSQL
上一頁   下一頁

CREATE DATABASE

名稱

CREATE DATABASE ─ 創建新資料庫

CREATE DATABASE name [ WITH LOCATION = 'dbpath' ]
  

輸入

name
要創建的資料庫名。
dbpath
在文件系統裡儲存新資料庫的可選位置。參閱下面的注意事項。

輸出

CREATE DATABASE
命令成功執行的返回資訊。
ERROR: user 'username' is not allowed to create/drop databases
你必須有特殊的 CREATEDB 權限來創建資料庫。參閱 CREATE USER
ERROR: createdb: database "name" already exists
如果聲明的資料庫 database 已經存在返回的資訊。
ERROR: Single quotes are not allowed in database names., ERROR: Single quotes are not allowed in database paths.
資料庫 namedbpath 不能包含單引號。這樣要求是為了創建資料庫目錄的 shell 命令能夠正確執行。
ERROR: The path 'xxx' is invalid.
對聲明的 dbpath 擴展(參閱下面為什麼)失敗。檢查你輸入的路徑或者確信你引用的環境變數的確存在。
ERROR: createdb: May not be called in a transaction block.
如果你有一個顯式的事務塊正在處理,你不能調用 CREATE DATABASE。你必須先結束事務。
ERROR: Unable to create database directory 'xxx'., ERROR: Could not initialize database directory.
這種情況最有可能是對數據目錄權限不夠,硬碟已滿或其他文件系統問題。資料庫伺服器運行的機器上的用戶必須能反問該路徑。

描述

CREATE DATABASE 創建一個新的 PostgreSQL 資料庫。創建者成為新資料庫的管理員。

可以聲明一個可選的資料庫位置,例如,為了在另一塊硬盤上存放資料庫。該路徑必須是事先用 initlocation 準備好了的。

如果路徑包含斜杠,那麼(斜杠)前面的部分被解釋成一個環境變數,該變數必須為服務進程所知。這樣資料庫管理員可以對能夠在那裡創建資料庫進行控制。(例如,一個用戶化的選擇是 'PGDATA2'。)如果伺服器被編譯成帶有 ALLOW_ABSOLUTE_DBPATHS (預設時沒有)選項,以斜杠開頭為標識的絕對路徑(例如, '/usr/local/pgsql/data')同樣也允許。

注意

CREATE DATABASE 是 Postgres 語言的擴展。

使用 DROP DATABASE t刪除一個資料庫。

程式 createdb 是這個命令的 shell 腳本的封裝,提供來方便使用。

在用絕對路徑指定資料庫位置時,有一些安全和數據完整性的問題,而且預設時只有後端識別的環境變數可以聲明為可選的路徑。參考管理員手冊獲取更多的資訊。

用法

創建一個新的資料庫:

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 psql, the PostgreSQL interactive terminal.
(Please type \copyright to see the distribution terms of PostgreSQL.)
 
Type \h for help with SQL commands,
     \? for help on internal slash commands,
     \q to quit,
     \g or terminate with semicolon to execute query.
olly=> CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db';
CREATE DATABASE
   

兼容性

SQL92

在 SQL92 裡沒有 CREATE DATABASE 語句。標準 SQL 裡等同的命令是 CREATE SCHEMA。


上一頁 首頁 下一頁
CREATE AGGREGATE 開頭 CREATE FUNCTION