PostgreSQL 教程: 重命名数据库

九月 25, 2023

摘要:在本教程中,您将逐步学习如何使用ALTER DATABASE RENAME TO语句重命名 PostgreSQL 数据库。

PostgreSQL 重命名数据库步骤

要重命名一个 PostgreSQL 数据库,请使用以下步骤:

  1. 断开与要重命名的数据库的连接,并连接到其他数据库。
  2. 检查并终止与要重命名的数据库的所有活跃连接。
  3. 使用ALTER DATABASE语句将数据库重命名为新的名称。

让我们看一个重命名数据库的示例。

以下语句创建一个名为db的新数据库:

CREATE DATABASE db;

要将db数据库重命名为newdb,请按照下列步骤操作:

首先,断开与要重命名的数据库的连接,然后连接到另一个数据库,例如postgres。如果使用 psql 工具,可以使用以下命令连接postgres数据库:

db=# \connect postgres

连接到postgres数据库后,您将自动断开与db数据库的连接。

接下来,使用以下查询检查与db数据库的所有活跃连接:

SELECT  *
FROM pg_stat_activity
WHERE datname = 'db';

查询返回以下输出:

-[ RECORD 1 ]----+------------------------------
datid            | 35918
datname          | db
pid              | 6904
usesysid         | 10
usename          | postgres
application_name | psql
client_addr      | ::1
client_hostname  |
client_port      | 56412
backend_start    | 2017-02-21 08:25:05.083705+07
xact_start       |
query_start      |
state_change     | 2017-02-21 08:25:05.092168+07
waiting          | f
state            | idle
backend_xid      |
backend_xmin     |
query            |

从输出中可以清楚地看到,只有一个与db数据库的连接。

您可能会发现要重命名的数据库有许多活跃连接。在这种情况下,您需要在终止连接之前,通知相应的用户以及应用程序所有者,以避免数据丢失。

然后,使用以下语句终止与db数据库的所有连接:

SELECT
    pg_terminate_backend (pid)
FROM
    pg_stat_activity
WHERE
    datname = 'db';

之后,使用ALTER DATABASE RENAME TO语句,将db数据库重命名为newdb,如下所示:

ALTER DATABASE db RENAME TO newdb;

最后一点是,如果应用程序正在使用您的数据库,则应该修改连接字符串。

在本教程中,您学习了如何使用ALTER DATABASE RENAME TO语句,将 PostgreSQL 数据库重命名为新数据库。