📜  PostgreSQL重命名列

📅  最后修改于: 2020-11-30 01:23:13             🧑  作者: Mango

PostgreSQL重命名列

在本节中,我们将了解“更改表”中的“ PostgreSQL重命名”列条件如何工作,以重命名表的一列和各种列。

PostgreSQL重命名COLUMN命令

我们使用带有“重命名列”条件的ALTER TABLE命令来重命名表的列

句法

下面给出了“更改表重命名列”命令的语法:

ALTER TABLE table_name 
RENAME COLUMN column_name TO new_column_name;

在以上语法中,我们具有以下参数:

Parameter Description
Alter table It is a clause, which is used to modify the definition of a table.
Table_name It is used to describe the table name where we want to rename a column after the ALTER TABLE clause.
Column_name It is used to specify the column name after the RENAME COLUMN clause.
New_cloumn _name It is used to specify the new column name after the TO keyword clause.

在上面的语法中, COLUMN关键字是可选的,因此我们可以忽略它,如下面的命令所示:

ALTER TABLE table_name 
RENAME column_name TO new_column_name;

注意:

  • 如果我们尝试重命名不存在的列,PostgreSQL将引发错误。
  • 对于重命名条件,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。

首先,我们将创建两个新表,分别为Student和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)
);

输出量

执行完上述命令后,我们将获得以下消息窗口,该窗口显示已经创建了Student表。

CREATE TABLE Student_groups (
    Stu_id serial PRIMARY KEY,
    Stu_name VARCHAR NOT NULL
);

输出量

执行完上述命令后,我们将获得以下消息窗口,该窗口显示已创建Student_groups表。

之后,我们将创建一个student_data视图,该视图取决于以上的Student和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;

输出量

执行完上述命令后,我们将获得下面的消息窗口,其中Student表已更改。

使用RENAME COLUMN重命名具有相关对象的列的示例

在此示例中,我们将使用ALTER TABLE RENAME COLUMN命令将Stu_name列重命名为Student_groups表的名称。 Stu_name列用于Student_data视图

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;

输出量

执行完上述命令后,我们将获得以下消息窗口,该窗口显示“学生”表已被更改。

如果要检查上述操作是否正常,我们将在下面使用SELECT命令:

Select * from Students;

输出量

执行上面的命令后,我们将获得以下输出: