oracular (7) create_database.7.gz

Provided by: manpages-zh_1.6.4.0-1_all bug

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