PostgreSQL 表字段重命名
在本节中,我们将了解 PostgreSQL重命名列条件如何在用于重命名表的一个列和多个列的Alter table命令中工作。
PostgreSQL 重命名 COLUMN 命令
我们使用带有Rename Column 条件的ALTER TABLE命令来重命名表的列。
Alter table rename column命令的语法如下:
ALTER TABLE table_name
RENAME COLUMN column_name TO new_column_name;
在上面的语法中,我们有以下参数:
范围 | 描述 |
---|---|
Alter table | 它是一个子句,用于修改表的定义。 |
Table_name | 它用于描述我们要在 ALTER TABLE 子句之后重命名列的表名。 |
Column_name | 它用于在 RENAME COLUMN 子句之后指定列名。 |
New_cloumn _name | 它用于在 TO 关键字子句之后指定新的列名。 |
在上面的语法中,COLUMN 关键字是可选的,因此我们可以忽略它,如下面的命令所示:
ALTER TABLE table_name
RENAME column_name TO new_column_name;
注意:
- 如果我们尝试重命名不存在的列,PostgreSQL 将引发错误。
- 对于 Rename 条件,PostgreSQL 不提供IF EXISTS选项。
我们需要多次执行ALTER TABLE RENAME COLUMN命令来重命名多列,我们可以一次重命名一列,如下面的语法所示:
ALTER TABLE table_name
RENAME column_name_1 TO new_column_name_1;
或者
ALTER TABLE table_name
RENAME column_name_2 TO new_column_name_2;
如果我们重命名由其他数据库对象(如外键约束、视图、存储过程和触发器)引用的列,PostgreSQL也会修改其所有依赖对象。
PostgreSQL RENAME COLUMN 示例
让我们看一些示例,以便更好地理解我们将在何处使用 ALTER TABLE RENAME COLUMN。
首先,我们将创建两个新表作为Students 和 Student_groups。
CREATE TABLE Students (
St_id serial PRIMARY KEY,
St_name VARCHAR NOT NULL,
St_email VARCHAR,
St_phone_no VARCHAR NOT NULL,
St_group_id INT,
FOREIGN KEY (st_group_id) REFERENCES Student_groups (Stu_id)
);
执行完上面的命令后,我们得到下面的消息窗口,上面说学生表已经创建。
CREATE TABLE Student_groups (
Stu_id serial PRIMARY KEY,
Stu_name VARCHAR NOT NULL
);
执行完上面的命令后,我们得到下面的消息窗口,上面说Student_groups表已经创建。
之后,我们将创建一个student_data 视图,它依赖于上面的Students 和 Student_groups表
CREATE VIEW Student_data
AS SELECT
s.St_id,
s.St_name,
g.Stu_name student_group
FROM
Students s
INNER JOIN Student_groups g ON g.Stu_id = s.St_group_id;
执行完上面的命令后,我们得到下面的消息窗口,上面说Student_data视图已经创建。
使用 RENAME COLUMN 重命名一列的示例
要将St_email列重命名为 Students 表的电子邮件,我们将对 ALTER TABLE RENAME COLUMN命令使用以下语句:
ALTER TABLE Students
RENAME COLUMN St_email TO email;
执行上述命令后,我们得到以下消息窗口,其中Students 表已被更改。
使用 RENAME COLUMN 重命名具有依赖对象的列的示例
在此示例中,我们将使用 ALTER TABLE RENAME COLUMN 命令将Stu_name列重命名为Student_groups表的名称。Student_data 视图中使用了Stu_name列。
ALTER TABLE Student_groups
RENAME COLUMN Stu_name TO name;
执行上述命令后,我们会看到以下消息窗口,表明student_groups 表已被更改。
现在,我们可以使用以下屏幕截图中给出的命令来验证列名是否已被修改:
正如我们在视图定义中看到的,Stu_name 列已更改为 name。
使用多个 RENAME COLUMN 重命名多个列的示例
这些语句将Students表的两列St_name 和 St_phone_no分别重命名为Student_name 和 Student_phone_no:
ALTER TABLE Students
RENAME COLUMN St_name TO Student_name;
ALTER TABLE Students
RENAME COLUMN St_phone_no TO Student_phone_no;
执行上面的命令后,我们得到下面的消息窗口,表明Students 表已被更改。
如果我们想检查以上操作是否正常工作,我们将使用下面的SELECT 命令:
Select * from Students;
执行上述命令后,我们将得到以下输出:
热门文章
优秀文章