PostgreSQL7.0手冊-用戶手冊-19. SQL命令-CREATE DATABASE
2019-09-08 23:33:01
供稿:網(wǎng)友
CREATE DATABASE
名稱
CREATE DATABASE ― 創(chuàng)建新數(shù)據(jù)庫
語法
CREATE DATABASE name [ WITH LOCATION = 'dbpath' ]
輸入
name
要創(chuàng)建的數(shù)據(jù)庫名.
dbpath
在文件系統(tǒng)里存儲新數(shù)據(jù)庫的可選位置。參閱下面的注意事項(xiàng)。
輸出
CREATE DATABASE
命令成功執(zhí)行的返回信息.
ERROR: user 'username' is not allowed to create/drop databases
你必須有特殊的 CREATEDB 權(quán)限來創(chuàng)建數(shù)據(jù)庫。參閱 CREATE USER。
ERROR: createdb: database "name" already exists
如果聲明的數(shù)據(jù)庫 database 已經(jīng)存在返回的信息.
ERROR: Single quotes are not allowed in database names., ERROR: Single quotes are not allowed in database paths.
數(shù)據(jù)庫 name 和 dbpath 不能包含單引號。這樣要求是為了創(chuàng)建數(shù)據(jù)庫目錄的 shell 命令能夠正確執(zhí)行。
ERROR: The path 'xxx' is invalid.
對聲明的 dbpath 擴(kuò)展(參閱下面為什么)失敗。檢查你輸入的路徑或者確信你引用的環(huán)境變量的確存在。
ERROR: createdb: May not be called in a transaction block.
如果你有一個顯式的事務(wù)塊正在處理,你不能調(diào)用 CREATE DATABASE。你必須先結(jié)束事務(wù)。
ERROR: Unable to create database directory 'path'., ERROR: Could not initialize database directory.
這種情況最有可能是對數(shù)據(jù)目錄權(quán)限不夠,磁盤已滿或其他文件系統(tǒng)問題。數(shù)據(jù)庫服務(wù)器運(yùn)行的機(jī)器上的用戶必須能反問該路徑。
描述
CREATE DATABASE 創(chuàng)建一個新的 Postgres 數(shù)據(jù)庫.創(chuàng)建者成為新數(shù)據(jù)庫的管理員.
A
可以聲明一個可選的數(shù)據(jù)庫位置,例如,為了在另一塊硬盤上存放數(shù)據(jù)庫。該路徑必須是事先用 initlocation 準(zhǔn)備好了的.
如果路徑包含斜杠,那么(斜杠)前面的部分被解釋成一個環(huán)境變量,該變量必須為服務(wù)進(jìn)程所知。這樣數(shù)據(jù)庫管理員可以對能夠在那里創(chuàng)建數(shù)據(jù)庫進(jìn)行控制。(例如,一個用戶化的選擇是 'PGDATA2'。)如果服務(wù)器被編譯成帶有 ALLOW_ABSOLUTE_DBPATHS (缺省時沒有)選項(xiàng),以斜杠開頭為標(biāo)識的絕對路徑(例如, '/usr/local/pgsql/data')同樣也允許。
注意
CREATE DATABASE 是 Postgres 語言的擴(kuò)展.
使用 drop_database 刪除一個數(shù)據(jù)庫.
程序 createdb 是這個命令的 shell 腳本的封裝,提供來方便使用。
在用絕對路徑指定的可選數(shù)據(jù)庫位置時,有一些安全和數(shù)據(jù)完整性的問題,而且缺省時只有后端識別的環(huán)境變量可以聲明為可選的路徑.參考管理員手冊獲取更多的信息.
用法
創(chuàng)建一個新的數(shù)據(jù)庫:
olly=> create database lusiadas;
在另一個地方創(chuàng)建新數(shù)據(jù)庫. ~/private_db:
$ mkdir private_db
$ initlocation ~/private_db
Creating Postgres database system directory /home/olly/private_db/base
$ psql olly
Welcome to psql, the PostgreSQL interactive terminal.
Type: /copyright for distribution terms
/h for help with SQL commands
/? for help on internal slash commands
/g or terminate with semicolon to execute query
/q to quit
olly=> CREATE DATABASE elsewhere WITH LOCATION = '/home/olly/private_db';
CREATE DATABASE
兼容性
SQL92
在 SQL92 里沒有 CREATE DATABASE 語句.?dāng)?shù)據(jù)庫等同于目錄,其創(chuàng)建是由實(shí)現(xiàn)決定的.