當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PostgreSQL ALTER DATABASE用法及代碼示例

PostgreSQL 有一個 ALTER DATABASE 語句,用於修改現有數據庫。數據庫的函數一旦創建就可以使用 ALTER DATABASE 語句進行更改。

用法: ALTER DATABASE target_database action;

正如上麵的語法所描述的,在 ALTER DATABASE 語句之後提到要進行修改的數據庫,然後是要對數據庫執行的操作。

以下是 PostgreSQL 允許的操作列表:

重命名數據庫:

ALTER DATABASE RENAME TO 語句用於重命名數據庫,如下所示:

ALTER DATABASE target_database RENAME TO new_database;

更改數據庫所有者:

ALTER DATABASE OWNER TO 語句用於更改數據庫的所有者,如下所示:



ALTER DATABASE target_database OWNER TO new_owner;

需要注意的是,隻有超級用戶或數據庫所有者才能執行此操作。

更改表空間數據庫:

ALTER DATABASE SET TABLESPACE 語句用於更改數據庫的默認表空間,如下所示:

ALTER DATABASE target_database SET TABLESPACE new_tablespace;

該語句將表和索引從舊表空間移動到新表空間。

更改運行時配置變量的會話默認值:

默認情況下,PostgreSQL 從 postgresql.conf 文件加載配置變量。此文件包含有關數據庫角色及其各自的身份驗證散列類型的信息。可以使用 ALTER DATABASE SET 語句編輯這些設置或信息,如下所示:

ALTER DATABASE target_database SET config_data = value;

請務必注意,隻有超級用戶或數據庫所有者才能更改數據庫的默認會話變量。
現在,讓我們看一下 ALTER DATABASE 語句的實現示例。

例:
讓我們以 Postgres 用戶身份登錄並使用以下命令創建一個示例數據庫(例如 my_test_db):

CREATE DATABASE my_test_db; 

現在使用以下命令將數據庫從 “my_test_db” 重命名為“my_renamed_db”:



ALTER DATABASE my_test_db RENAME TO my_renamed_db;

現在執行以下語句將 “my_renamed_db” 數據庫的所有者從 “postgres” 更改為 “geeks”,假設 “geeks” 角色已經存在。

ALTER DATABASE my_renamed_db OWNER TO geeks;

如果 “geeks” 角色不存在,請使用以下語句創建它:

CREATE ROLE geeks
 VALID UNTIL 'infinity';

現在將 my_renamed_db 的默認表空間從 pg_default 更改為 geeks_default,假設 geeks_defaulttablespace 已經存在。

ALTER DATABASE my_renamed_db
SET TABLESPACE geeks_default;

如果 geeks_defaulttablespace 不存在,您可以使用以下語句創建它:

CREATE TABLESPACE geeks_default
 OWNER geeks
 LOCATION E'C:\\pgdata\\geeks';

現在使用以下命令將 escape_string_warning 配置變量設置為關閉:

ALTER DATABASE my_renamed_db SET escape_string_warning TO off; 

相關用法


注:本文由純淨天空篩選整理自RajuKumar19大神的英文原創作品 PostgreSQL – ALTER DATABASE。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。