PostgreSQL - 重命名数据库
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 语句产生以下结果 −
步骤 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';
在此输出中,您将看到终止数据库连接的查询。
- 将数据库从 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;
ii. 显示数据的查询。
SELECT * FROM Emp;
因此,通过这种方式,您可以在 PostgreSQL 中重命名数据库。