PostgreSQL ALTER DATABASE 修改数据库
本文介绍了如何在 PostgreSQL 中修改数据库的信息。
PostgreSQL 允许您使用 ALTER DATABASE
语句修改一个现有的数据库的信息。
PostgreSQL ALTER DATABASE
语法
PostgreSQL ALTER DATABASE
可以修改数据库的各种信息,包括名称、属性、所有者、表空间等。
-
要重命名一个数据库,请使用如下语法:
ALTER DATABASE name RENAME TO new_name;
-
要修改数据库的所有者,请使用如下语法:
ALTER DATABASE name OWNER TO { new_owner | CURRENT_ROLE | CURRENT_USER | SESSION_USER };
-
要修改数据库的选项,请使用如下语法:
ALTER DATABASE name [WITH] ALLOW_CONNECTIONS { true | false}; ALTER DATABASE name [WITH] CONNECTION LIMIT connlimit; ALTER DATABASE name [WITH] IS_TEMPLATE { true | false};
这里:
ALLOW_CONNECTIONS
是否允许连接到此数据库CONNECTION LIMIT
连接数限制IS_TEMPLATE
是否为模版数据库
-
要修改数据库的表空间,请使用如下语法:
ALTER DATABASE name SET TABLESPACE new_tablespace;
-
要修改数据库的配置参数,请使用如下语法:
ALTER DATABASE name SET configuration_parameter { TO | = } { value | DEFAULT }; ALTER DATABASE name SET configuration_parameter FROM CURRENT;
配置参数的新值将被写入到
postgresql.conf
文件中,以在新会话中加载使用。 -
要重置数据库的配置参数的值,请使用如下语法:
ALTER DATABASE name RESET configuration_parameter;
-
要重置数据库所有的配置参数的值,请使用如下语法:
ALTER DATABASE name RESET ALL;
注意:要修改数据库的信息,您必须是超级用户或者数据库的所有者。
PostgreSQL ALTER DATABASE
实例
我们将在 psql 工具中使用 ALTER DATABASE
修改数据库信息。
使用 postgres
用户登录 PostgreSQL 服务器:
[~] psql -U postgres
psql (14.4)
Type "help" for help.
创建一个数据库 test_db
用于演示:
CREATE DATABASE test_db;
重命名数据库
要将 test_db
重命名为 test_new_db
,请使用下面的语句:
ALTER DATABASE test_db
RENAME TO test_new_db;
您不能重命名当前数据库。
如果有其他用户正在使用您要重命名的数据库,PostgreSQL 会给出一个错误提示。
修改数据库的表空间
数据库的默认的表空间为 pg_default
,下面说明了如何将数据库的表空间修改为 test_tablespace
。
首先,请使用下面的语句创建表空间:
CREATE TABLESPACE test_tablespace
OWNER postgres
LOCATION 'D:\\data\\pg_tablespaces\\test_tablespace';
然后,使用下面的语句修改数据库的表空间:
ALTER DATABASE test_new_db
SET TABLESPACE test_tablespace;
修改数据库是否允许连接
要将数据库设置为不允许连接,请使用下面的语句:
ALTER DATABASE test_new_db ALLOW_CONNECTIONS false;
要设置数据库设置为允许连接,请使用下面的语句:
ALTER DATABASE test_new_db ALLOW_CONNECTIONS true;
修改数据库的连接数
要将此数据库的连接数限制为 10, 请使用下面的语句:
ALTER DATABASE test_new_db CONNECTION LIMIT 10;
修改数据库是否为模板数据库
要设置数据库设置为模板数据库,请使用下面的语句:
ALTER DATABASE test_new_db IS_TEMPLATE true;
要设置数据库设置为不是模板数据库,请使用下面的语句:
ALTER DATABASE test_new_db IS_TEMPLATE false;
修改数据库的所有者
数据库 test_new_db
的所有者是 postgres
,下面说明了如何要将其所有者修改为 test
。
首先,使用下面的语句创建 test
用户:
CREATE USER test PASSWORD '123456';
然后,使用下面的语句将数据库的所有者修改为 test
:
ALTER DATABASE test_new_db OWNER TO test;
在本教程中,您学习了如何使用 PostgreSQL ALTER DATABASE
语句。