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

NAME

       CREATE DATABASE - 創建新數據庫

SYNOPSIS

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

DESCRIPTIONyz
       CREATE DATABASE 創建一虓s的 PostgreSQL 數據庫。

        n創建一蚍畬w,你必須是一荈W級使用者或者有特殊的  CREATEDB  權。 參閱
       CREATE USER [create_user(7)]。

        通常,創建者成為新數據庫的管理。        超級使用者可以用        OWNER
       子句創建其它使用者所有的數據庫。             他怓雈i以創建沒有特殊權-
       的使用者所有的數據庫。                                    有CREATEDB權-
       的非超級使用者使用只能創建自己使用的數據庫。

        可以聲明一茈i選的數據庫位置,例如,在另一塊硬碟上存放數據庫。
       該路徑必須是事先用 initlocation[initlocation(1)]  命令準備好了的。

        如果路徑名不包含斜槓,那麼它被解釋成一蚗藿疻僆q,
       該變量必須為服務進程所知。這樣數據庫管理
       可以對能夠在那裏創建數據庫進行控制。(例如,一茖洏峈怳瑪嚝頇O
       '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,  你可以創建一茷鳦覆銂獐畬w,只包括你的版本的
       PostgreSQL 預定義的  標準對象。這茪隤k可以避免把任何已經加入到template1
       裏的本地安裝對象拷貝到新數據庫。

        可選的編碼參數允許選擇數據庫編碼,
       如果沒有聲明,預設是所選用的模板數據庫用的編碼。

PARAMETERS數
       name    n創建的數據庫名。

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

       dbpath      在檔案系統裏存儲新數據庫的可選位置;用字串文本聲明。 或者用
              DEFAULT 表示使用預設位置。

       template
               從蚍猁O創建新數據庫,這是模板名。或者用                DEFAULT
              使用預設模板(template1)。

       encoding
               創建新數據庫用的多字節編碼方法。聲明一茼r串文本名字
              (比如,'SQL_ASCII'),     或者一蚞蒱s號,或者是      DEFAULT
              表示使用預設編碼。

        可選參數可以以任意順序寫,而不僅是上掬膆靰熄陽C

NOTES`N
       CREATE DATABASE 不能在一茖鐒堭執行。 block.

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

        使用 DROP DATABASE [drop_database(7)]  刪除一蚍畬w。

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

        在用絕對路徑指定的可選數據庫位置時,有一些安全和數據完整性的問題,
       這就是為什麼預設時沒有打開這荅S性的鴞]。  參考  ``Managing  Databases''
       獲取更多的信息。

        儘管我怚i以通過把某數據庫名聲明為模板(而非
       template1)從非template1數據庫拷貝數據庫,    但是這(還)不是一茬q用的
       "COPY              DATABASE"              功能。              因此,我-
       怮媊雪禨絳猁O使用的數據庫都應該是以只讀方式對待的。   參閱   ``Managing
       Databases'' 獲取更多信息。

EXAMPLESl
        創建一虓s的數據庫:

       CREATE DATABASE lusiadas;

        在另一茼a方  ~/private_db創建新數據庫,  在  shell   裏執行下悸漯F西:
       shell:

       mkdir private_db
       initlocation ~/private_db

        然後在一 psql 會話裏執行下悸漯F西:

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

COMPATIBILITYe性
        在       SQL       標準裏沒有       CREATE       DATABASE       語句。
       數據庫等同於目錄,其創建是由實現決定的。

者
       Postgresql  <laser@pgsqldb.org>