2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 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 [連線選項...] [選項...] [資料庫名 [描述]]

描述

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

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

createdb 是一個圍繞SQL命令 CREATE DATABASE 的包裝器。透過此實用程式建立資料庫與透過其他方法訪問伺服器建立資料庫之間沒有實際區別。

選項

createdb 接受以下命令列引數

dbname

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

描述

指定一個要與新建立的資料庫關聯的註釋。

-D 表空間
--tablespace=表空間

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

-e
--echo

回顯 createdb 生成併發送到伺服器的命令。

-E 編碼
--encoding=編碼

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

-l 區域設定
--locale=區域設定

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

--lc-collate=區域設定

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

--lc-ctype=區域設定

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

--builtin-locale=區域設定

使用內建提供程式時指定區域設定名稱。區域設定支援在 第 23.1 節 中進行了描述。

--icu-locale=區域設定

如果選擇了 ICU 區域設定提供程式,則指定此資料庫中要使用的 ICU 區域設定 ID。

--icu-rules=規則

指定附加的排序規則以自定義此資料庫預設排序的行為。這僅支援 ICU。

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

指定資料庫預設排序的區域設定提供程式。

-O 所有者
--owner=所有者

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

-S 策略
--strategy=策略

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

-T 模板
--template=模板

指定用於構建此資料庫的模板資料庫。(此名稱被處理為帶雙引號的識別符號。)

-V
--version

列印 createdb 版本並退出。

-?
--help

顯示有關 createdb 命令列引數的幫助,然後退出。

選項 -D-l-E-O-T 對應於底層 SQL 命令 CREATE DATABASE 的選項;有關它們的更多資訊,請參閱該命令。

createdb 還接受以下用於連線引數的命令列引數

-h 主機
--host=主機

指定伺服器執行所在計算機的主機名。如果值以斜槓開頭,則用作 Unix 域套接字目錄。

-p
--port=

指定伺服器正在監聽連線的 TCP 埠或本地 Unix 域套接字副檔名。

-U 使用者名稱
--username=使用者名稱

要連線的使用者。:

-w
--no-password

絕不發出密碼提示。如果伺服器需要密碼身份驗證且密碼不可用(例如透過 .pgpass 檔案),則連線嘗試將失敗。此選項在沒有使用者在場輸入密碼的批處理作業和指令碼中很有用。

-W
--password

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

此選項永遠不是必需的,因為如果伺服器要求密碼認證,createdb 會自動提示輸入密碼。但是,createdb 會浪費一次連線嘗試來發現伺服器需要密碼。在某些情況下,輸入 -W 以避免額外的連線嘗試是值得的。

--maintenance-db=資料庫名

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

環境變數

PGDATABASE

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

PGHOST
PGPORT
PGUSER

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

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

提交更正

如果您在文件中發現任何不正確的內容、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。