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 语句。