如下:
第一個蛋? ..\share\下的postgres.bki、*.sql檔案
initdb.exe 根據 ..\share\下的postgres.bki、*.sql檔案 初始化資料庫儲存簇。這時該初始化簇包含3個資料庫、一個supuser!
- 預設調用initdb.exe的os使用者(postgres)的同名使用者串連資料庫(postgres)
- virgin(處女——純潔啊)模板資料庫tmeplate0:模板、不可以串連
- 通用模板資料庫template1:模板,可以串連
- 預設調用initdb.exe的os使用者(postgres)的同名的超級使用者(postgres)
create database new_db_name[template {template1(預設)|template_name}]
- 這裡的template_name指模板資料庫可以是任何資料庫。super使用者和owner使用者可以想怎麼做就怎麼做,否則只有模板資料庫才可以讓普通具有createdb許可權的使用者指定該資料庫作為模板
- 預設使用者資料庫:完全可以幹掉!預設情況下,postgresql讓template1預設資料庫可以接受使用者的串連!
- 預設資料庫可以重建,他就是普通使用者資料庫
- template1模板資料庫也可以幹掉!不過你要知道,他基本上是最後一個可以刪除的資料庫了!如果沒有其他正常的使用者資料庫,你就準備重新 initdb.exe吧!!!
- template1資料庫可以重建!必須要制定其他模板了!如果沒有該庫,就不能使用沒有template子句的create database 了
資料庫的兩個屬性標誌
- datistemplate:是否是可以供普通使用者可以使用的模板資料庫,對supuser 和 owner 使用者無效
- datallowconn:是否允許使用者串連到該資料庫!任何要作為模板進行clone的資料庫必須是乾淨的,不能有其他串連!對對supuser 和 owner 使用者也是如此!
create database db_name
[
[with]
[owner [=] other_role_name] --只有superuser才能指定其他owner。預設當前 role
[encoding [=] encoding_name] --字元集編碼,預設utf8
[template [=] template_db_name] --(模板)資料庫,預設template1
[tablespace [=] tablespace_name] --預設資料表空間,預設pg_default
[connection limit [=] connlimit] --啟動並執行並非串連數,預設不限制(-1)
]
建立資料庫必須有create database 許可權 或 superuser
不允許在事務內執行
使用程式createdb.exe是對create database語句的封裝