?
? ????? PHP ??? ???? ??? ?? ??
ALTER DATABASE name [ [ WITH ] option [ ... ] ]
這里的option可以是:
CONNECTION LIMIT connlimit
ALTER DATABASE name RENAME TO new_name
ALTER DATABASE name OWNER TO new_owner
ALTER DATABASE name SET TABLESPACE new_tablespace
ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }
ALTER DATABASE name SET configuration_parameter FROM CURRENT
ALTER DATABASE name RESET configuration_parameter
ALTER DATABASE name RESET ALL
ALTER DATABASE改變一個數(shù)據(jù)庫的屬性。
第一種形式改變某個針對每個數(shù)據(jù)庫的設(shè)置(詳細情況見下文)。只有數(shù)據(jù)庫所有 者或者超級用戶可以改變這些設(shè)置。
第二種形式修改數(shù)據(jù)庫的名稱。只有數(shù)據(jù)庫所有者或者超級用戶可以重命名一個數(shù)據(jù)庫; 非超級用戶必須也有CREATEDB權(quán)限。當前數(shù)據(jù)庫不能被重命名。 (如果你需要這么做,那么請連接另外一個數(shù)據(jù)庫。)
第三種形式修改數(shù)據(jù)庫的所有者。要改變所有者,你必須擁有該數(shù)據(jù)庫并且還是新的 所屬角色的直接或者間接成員,并且你必須有CREATEDB權(quán)限。 (請注意超級用戶自動擁有所有這些權(quán)限。)
第四種形式修改數(shù)據(jù)庫的缺省表空間。只有數(shù)據(jù)庫所有者或者超級用戶可以做這些; 你必須也有對新表空間的創(chuàng)建權(quán)限。這個命令可在物理上將數(shù)據(jù)庫的舊缺省空間中的 任何表或者索引移動到新的表空間中。請注意在非缺省表空間中的表和索引是不受影響的。
保留的形式為PostgreSQL數(shù)據(jù)庫修改缺省的會話運 行時配置變量。隨后在該數(shù)據(jù)庫上啟動新會話的時候?qū)⑹褂么巳笔≈怠?shù)據(jù)庫相 關(guān)的缺省值將覆蓋任何在postgresql.conf里出現(xiàn)或者從 postgres命令行接收到的設(shè)置。只有數(shù)據(jù)庫所有者或者超級 用戶可以為數(shù)據(jù)庫修改會話缺省值。有些變量不能用這種方法設(shè)置,或者是只能由 超級用戶設(shè)置。
需要修改屬性的數(shù)據(jù)庫的名字。
對這個數(shù)據(jù)庫可以做多少個并發(fā)連接。-1表示沒有限制。
數(shù)據(jù)庫的新名稱。
數(shù)據(jù)庫的新所有者。
數(shù)據(jù)庫的新缺省表空間。
把指定的數(shù)據(jù)庫配置變量的會話缺省值設(shè)置為給出的數(shù)值。如果 value是DEFAULT或等效的 RESET,那么與數(shù)據(jù)庫相關(guān)的變量設(shè)置將被刪除,因此在 新的會話中將繼承系統(tǒng)范圍的缺省設(shè)置。用RESET ALL清 除所有設(shè)置。SET FROM CURRENT將會話參數(shù)的當前值保存為相關(guān) 的數(shù)據(jù)庫值。
參見SET和章17SET獲取有關(guān)允 許的變量名稱和數(shù)值的更多信息。
也可以把一個會話缺省綁定到一個特定用戶,而不是某個數(shù)據(jù)庫上;參閱 ALTER ROLE。如果存在沖突,那么用戶聲明的設(shè)置覆蓋數(shù) 據(jù)庫相關(guān)的設(shè)置。
要關(guān)閉在數(shù)據(jù)庫test上缺省的索引掃描: test:
ALTER DATABASE test SET enable_indexscan TO off;
ALTER DATABASE語句是一個 PostgreSQL擴展.