Man page - create_database(7)

Manual

CREATE DATABASE

NAME
SYNOPSIS
DESCRIPTION 描 述
PARAMETERS 引 數
NOTES 注 意
EXAMPLES 例 子
COMPATIBILITY 相 容 性
譯 者


NAME

CREATE DATABASE - 建 立 新 資 料 庫

SYNOPSIS

CREATE DATABASE name
[ [ WITH ] [ OWNER [=] dbowner ]
[ LOCATION [=] ’ dbpath ’ ]
[ TEMPLATE [=] template ]
[ ENCODING [=] encoding ] ]

DESCRIPTION 描 述

CREATE DATABASE 建 立 一 個 新 的 PostgreSQL 資 料 庫 。

要 建 立 一 個 數 據 庫 , 你 必 須 是 一 個 超 級 使 用 者 或 者 有 特 殊 的 CREATEDB 許 可 權 。 參 閱 CREATE USER [ create_user (7)]。

通 常 , 建 立 者 成 為 新 資 料 庫 的 管 理 員 。 超 級 使 用 者 可 以 用 OWNER 子 句 建 立 其 它 使 用 者 所 有 的 資 料 庫 。 他 們 甚 至 可 以 建 立 沒 有 特 殊 許 可 權 的 使 用 者 所 有 的 資 料 庫 。 有 CREATEDB許 可 權 的 非 超 級 使 用 者 使 用 只 能 建 立 自 己 使 用 的 資 料 庫 。

可 以 宣 告 一 個 可 選 的 資 料 庫 位 置 , 例 如 , 在 另 一 塊 硬 碟 上 存 放 資 料 庫 。 該 路 徑 必 須 是 事 先 用 initlocation[ initlocation (1)] 命 令 準 備 好 了 的 。

如 果 路 徑 名 不 包 含 斜 槓 , 那 麼 它 被 解 釋 成 一 個 環 境 變 數 , 該 變 數 必 須 為 服 務 程 序 所 知 。 這 樣 資 料 庫 管 理 員 可 以 對 能 夠 在 那 裡 建 立 資 料 庫 進 行 控 制 。 ( 例 如 , 一 個 使 用 者 化 的 選 擇 是 ’PGDATA2’。 ) 如 果 伺 服 器 帶 著 ALLOW_ABSOLUTE_DBPATHS ( 預 設 時 沒 有 ) 選 項 編 譯 , 那 麼 也 允 許 使 用 以 斜 槓 開 頭 為 標 識 的 絕 對 路 徑 ( 例 如 , ’ ’/usr/local/pgsql/data’) 。 In either case, the final path name must be absolute and must not contain any single quotes.

預 設 時 , 新 資 料 庫 將 透 過 克 隆 標 準 系 統 資 料 庫 template1 來 建 立 。 不 同 的 模 板 可 以 用 TEMPLATE = name 來 寫 。 尤 其 是 , 如 果 你 用 TEMPLATE = template0, 你 可 以 建 立 一 個 很 純 淨 的 資 料 庫 , 只 包 括 你 的 版 本 的 PostgreSQL 預 定 義 的 標 準 物 件 。 這 個 方 法 可 以 避 免 把 任 何 已 經 加 入 到 template1 裡 的 本 地 安 裝 物 件 複 製 到 新 資 料 庫 。

可 選 的 編 碼 引 數 允 許 選 擇 資 料 庫 編 碼 , 如 果 沒 有 宣 告 , 預 設 是 所 選 用 的 模 板 資 料 庫 用 的 編 碼 。

PARAMETERS 引 數

name

要 建 立 的 資 料 庫 名 。

dbowner

資 料 庫 使 用 者 的 名 字 , 他 將 擁 有 新 資 料 庫 , 或 者 是 寫 DEFAULT 使 用 預 設 的 ( 也 就 是 執 行 命 令 的 使 用 者 ) 。

dbpath

在 檔 案 系 統 裡 儲 存 新 資 料 庫 的 可 選 位 置 ; 用 字 串 文 字 宣 告 。 或 者 用 DEFAULT 表 示 使 用 預 設 位 置 。

template

從 哪 個 模 板 建 立 新 資 料 庫 , 這 是 模 板 名 。 或 者 用 DEFAULT 使 用 預 設 模 板 ( template1) 。

encoding

建 立 新 資 料 庫 用 的 多 位 元 組 編 碼 方 法 。 宣 告 一 個 字 串 文 字 名 字 ( 比 如 , ’SQL_ASCII’) , 或 者 一 個 整 數 編 號 , 或 者 是 DEFAULT 表 示 使 用 預 設 編 碼 。

可 選 引 數 可 以 以 任 意 順 序 寫 , 而 不 僅 是 上 面 顯 示 的 順 序 。

NOTES 注 意

CREATE DATABASE 不 能 在 一 個 事 務 塊 裡 面 執 行 。 block.

類 似 "could not initialize database directory" 這 樣 的 錯 誤 最 有 可 能 是 因 為 資 料 目 錄 的 許 可 權 不 夠 , 或 者 磁 碟 滿 , 或 者 其 它 檔 案 系 統 的 問 題 。 在 使 用 可 選 的 位 置 的 時 候 , 執 行 資 料 庫 伺 服 器 的 使 用 者 必 須 有 訪 問 該 位 置 的 許 可 權 。

使 用 DROP DATABASE [ drop_database (7)] 刪 除 一 個 數 據 庫 。

程 式 createdb[ createdb (1)] 是 是 這 個 命 令 的 封 裝 , 提 供 來 方 便 使 用 。

在 用 絕 對 路 徑 指 定 的 可 選 資 料 庫 位 置 時 , 有 一 些 安 全 和 資 料 完 整 性 的 問 題 , 這 就 是 為 什 麼 預 設 時 沒 有 開 啟 這 個 特 性 的 原 因 。 參 考 ‘‘Managing Databases’’ 獲 取 更 多 的 資 訊 。

儘 管 我 們 可 以 透 過 把 某 資 料 庫 名 宣 告 為 模 板 ( 而 非 template1) 從 非 template1資 料 庫 複 製 資 料 庫 , 但 是 這 ( 還 ) 不 是 一 個 通 用 的 "COPY DATABASE" 功 能 。 因 此 , 我 們 建 議 當 做 模 板 使 用 的 資 料 庫 都 應 該 是 以 只 讀 方 式 對 待 的 。 參 閱 ‘‘Managing Databases’’ 獲 取 更 多 資 訊 。

EXAMPLES 例 子

建 立 一 個 新 的 資 料 庫 :

CREATE DATABASE lusiadas;

在 另 一 個 地 方 ˜/private_db建 立 新 資 料 庫 , 在 shell 裡 執 行 下 面 的 東 西 : shell:

mkdir private_db
initlocation ˜/private_db

然 後 在 一 個 psql 會 話 裡 執 行 下 面 的 東 西 :

CREATE DATABASE elsewhere WITH LOCATION ’/home/olly/private_db’;

COMPATIBILITY 相 容 性

在 SQL 標 準 裡 沒 有 CREATE DATABASE 語 句 。 資 料 庫 等 同 於 目 錄 , 其 建 立 是 由 實 現 決 定 的 。

譯 者

Postgresql 中 文 網 站 何 偉 平 <laser@pgsqldb.org>

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。
中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh