PostgreSQL怎么重命名数据库?

文章导读
Previous Quiz Next RENAME DATABASE 用于更改数据库的名称。重命名后,如果您尝试使用旧名称访问数据库,PostgreSQL 将显示类似 "database_name doesn't exist" 的错误,因为旧名称已无效。因此,您必须使用新名
📋 目录
  1. 为什么要重命名数据库?
  2. RENAME DATABASE 如何工作?
A A

PostgreSQL - 重命名数据库



Previous
Quiz
Next

RENAME DATABASE 用于更改数据库的名称。重命名后,如果您尝试使用旧名称访问数据库,PostgreSQL 将显示类似 "database_name doesn't exist" 的错误,因为旧名称已无效。因此,您必须使用新名称来访问数据库。

语法

以下是 PostgreSQL 中 RENAME DATABASE 的语法 −

ALTER DATABASE old_database_name RENAME TO new_database_name;

以下是上述语法的关键参数 −

  • old_database_name : 已存在的数据库。
  • new_database_name : 数据库的新名称。

为什么要重命名数据库?

重命名现有数据库名称的原因如下 −

  • 名称标准化 : 遵循一致的命名规范。
  • 更正 : 数据库名称最初不正确。
  • 品牌重塑 : 组织更改项目名称时需要此操作。
  • 合并数据库 : 用于区分旧版本与新版本。
  • 变更数据库 : 将数据库转移给新所有者或团队时。

RENAME DATABASE 如何工作?

要理解在 PostgreSQL 中重命名数据库,请想象您有一个包含表、行和列的现有数据库。当您重命名数据库时,所有数据和结构保持不变;仅数据库名称发生变化。数据仅在新名称下变得可访问。让我们看一下演示 −

ID Name Age Department Salary Join Date
1 Alex 28 IT 60000 2022-05-10
2 Robin 35 HR 55000 2020-08-22
3 Ravindra 30 Marketing 58000 2021-03-15
4 David 40 Finance 70000 2018-11-30

步骤 1 : 假设这是一个现有的数据库或将在 PostgreSQL 平台上实现的新数据库。

CREATE DATABASE employee_db_new;

步骤 2 : 在 PostgreSQL 中生成以下表的查询语句如下 −

CREATE TABLE Emp (
    ID SERIAL PRIMARY KEY,
    Name VARCHAR(50) NOT NULL,
    Age INT NOT NULL,
    Department VARCHAR(50) NOT NULL,
    Salary INT NOT NULL,
    Join_Date DATE NOT NULL
);

上述查询产生以下结果 −

CREATE TABLE
Query returned successfully in 62 msec.

步骤 3 : 将数据插入表中。

INSERT INTO employees (Name, Age, Department, Salary, Join_Date)
VALUES
    ('Alex', 28, 'IT', 60000, '2022-05-10'),
    ('Robin', 35, 'HR', 55000, '2020-08-22'),
    ('Ravindra', 30, 'Marketing', 58000, '2021-03-15'),
    ('David', 40, 'Finance', 70000, '2018-11-30');

上述查询输出以下结果 −

INSERT 0 
Query returned successfully in 57 msec.

步骤 4 : 使用 SELECT 语句获取表结果。

SELECT * FROM Emp;

在 PostgreSQL 中,SELECT 语句产生以下结果 −

table_result_for_rename_database_in_postgresql

步骤 5 : 将数据库 employee_db_new 重命名为 emp_db。按照以下逐步查询操作 −

  • 断开活动连接,即确保没有活动连接在使用该数据库。
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = 'employee_db_new';

在此输出中,您将看到终止数据库连接的查询。

terminate_the_database_in_postgresql
  • 将数据库从 employee_db_new 重命名为 emp_db,并确保新数据库中存在所有数据。
ALTER DATABASE employee_db_new RENAME TO emp_db;

上述查询的结果如下 −

ERROR:  database "employee_db_new" does not exist 
  • 验证新数据库中的数据。

打开窗口终端并按照以下步骤操作:

SQL Shell (psql) −> \l (检查现有数据库列表) −> \c emp_db;

i. 使用数据库名称连接服务器。

\c emp_db; 
sql_shell_psql_command_for_connecting_database

ii. 显示数据的查询。

SELECT * FROM Emp; 
verify_the_result_for_renaming_database

因此,通过这种方式,您可以在 PostgreSQL 中重命名数据库。