支援的版本:目前 (17) / 16 / 15 / 14 / 13
開發版本:devel
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1

createdb

createdb — 建立新的 PostgreSQL 資料庫

概要

createdb [connection-option...] [option...] [dbname [description]]

描述

createdb 建立一個新的 PostgreSQL 資料庫。

通常,執行此命令的資料庫使用者會成為新資料庫的擁有者。但是,如果執行使用者具有適當的權限,則可以使用 -O 選項指定不同的擁有者。

createdb 是對SQL指令 CREATE DATABASE 的封裝。透過此工具以及透過其他方法存取伺服器來建立資料庫,兩者之間沒有實際差異。

選項

createdb 接受以下命令列引數

dbname

指定要建立的資料庫名稱。該名稱在該叢集中所有 PostgreSQL 資料庫中必須是唯一的。預設值是建立一個與目前系統使用者同名的資料庫。

description

指定要與新建立的資料庫相關聯的註解。

-D tablespace
--tablespace=tablespace

指定資料庫的預設表空間。(此名稱被處理為雙引號識別符號。)

-e
--echo

回顯 createdb 產生並傳送到伺服器的指令。

-E encoding
--encoding=encoding

指定要在該資料庫中使用的字元編碼方案。PostgreSQL 伺服器支援的字元集在 第 23.3.1 節 中描述。

-l locale
--locale=locale

指定要在該資料庫中使用的地區設定。這相當於將 --lc-collate--lc-ctype--icu-locale 指定為相同的值。某些地區設定僅對 ICU 有效,必須使用 --icu-locale 進行設定。

--lc-collate=locale

指定要在該資料庫中使用的 LC_COLLATE 設定。

--lc-ctype=locale

指定要在該資料庫中使用的 LC_CTYPE 設定。

--builtin-locale=locale

指定使用內建提供者時的地區設定名稱。地區設定支援在第 23.1 節中描述。

--icu-locale=locale

指定要在此資料庫中使用的 ICU 地區設定 ID(如果選擇了 ICU 地區設定提供者)。

--icu-rules=rules

指定其他排序規則,以自訂此資料庫的預設排序規則的行為。僅 ICU 支援此功能。

--locale-provider={builtin|libc|icu}

指定資料庫預設排序規則的地區設定提供者。

-O owner
--owner=owner

指定將擁有新資料庫的資料庫使用者。(此名稱被處理為雙引號識別符號。)

-S strategy
--strategy=strategy

指定資料庫建立策略。有關更多詳細資訊,請參閱CREATE DATABASE STRATEGY

-T template
--template=template

指定用於建立此資料庫的範本資料庫。(此名稱被處理為雙引號識別符號。)

-V
--version

列印 createdb 版本並結束。

-?
--help

顯示有關 createdb 命令列引數的說明並結束。

選項 -D-l-E-O-T 對應到 SQL 指令 CREATE DATABASE 的選項;關於這些選項的更多資訊,請參閱該處。

createdb 也接受下列用於連線參數的命令列引數:

-h host
--host=host

指定伺服器執行的主機名稱。如果此值以斜線開頭,則會將其用作 Unix 網域套接字的目錄。

-p port
--port=port

指定伺服器監聽連線的 TCP 埠或本機 Unix 網域套接字檔案擴充名。

-U username
--username=username

要以哪個使用者名稱進行連線。

-w
--no-password

永遠不要發出密碼提示。如果伺服器需要密碼驗證,並且無法透過其他方式(例如 .pgpass 檔案)取得密碼,則連線嘗試將會失敗。這個選項在批次作業和指令碼中可能很有用,因為沒有使用者可以輸入密碼。

-W
--password

強制 createdb 在連線到資料庫之前提示輸入密碼。

這個選項並非絕對必要,因為如果伺服器需要密碼驗證,createdb 會自動提示輸入密碼。但是,createdb 會浪費一次連線嘗試來了解伺服器是否需要密碼。在某些情況下,輸入 -W 可以避免額外的連線嘗試。

--maintenance-db=dbname

指定建立新資料庫時要連線的資料庫名稱。如果未指定,則會使用 postgres 資料庫;如果該資料庫不存在(或者它是要建立的新資料庫的名稱),則會使用 template1。這可以是連線字串。如果是這樣,連線字串參數將覆寫任何衝突的命令列選項。

環境

PGDATABASE

如果設定,則為要建立的資料庫名稱,除非在命令列上覆寫。

PGHOST
PGPORT
PGUSER

預設連線參數。如果未在命令列上或透過 PGDATABASE 指定,PGUSER 也會決定要建立的資料庫名稱。

PG_COLOR

指定是否要在診斷訊息中使用顏色。可能的值為 alwaysautonever

此公用程式(與大多數其他 PostgreSQL 公用程式一樣)也使用 libpq 支援的環境變數(請參閱第 32.15 節)。

診斷

如果遇到困難,請參閱 CREATE DATABASEpsql,以了解潛在問題和錯誤訊息的討論。資料庫伺服器必須在目標主機上執行。此外,libpq 前端程式庫使用的任何預設連線設定和環境變數都將適用。

範例

使用預設資料庫伺服器建立資料庫 demo

$ createdb demo

若要使用主機 eden 上,連接埠 5000 的伺服器,使用 template0 範本資料庫建立資料庫 demo,以下是命令列指令和底層 SQL 指令

$ createdb -p 5000 -h eden -T template0 -e demo
CREATE DATABASE demo TEMPLATE template0;

另請參閱

dropdbCREATE DATABASE

提交更正

如果您在文件中看到任何不正確、與您使用特定功能的經驗不符或需要進一步說明的地方,請使用此表格來報告文件問題。