PostgreSQL 重命名列
在本节中,我们将了解
Alter表中PostgreSQL 重命名列条件的工作方式命令来重命名表的一列和各个列。
PostgreSQL重命名COLUMN命令
我们使用具有
重命名列条件的ALTER TABLE 命令以
重命名表的列。
语法
更改表重命名列命令的语法如下:
ALTER TABLE table_name
RENAME COLUMN column_name TO new_column_name;
在以上语法中,我们具有以下参数:
参数 |
说明 |
ALTER TABLE |
这是一个子句,用于修改表的定义。 |
Table_name |
它用于描述我们要在ALTER TABLE子句后重命名列的表名。 |
column_name |
它用于在RENAME COLUMN子句之后指定列名。 |
new_column_name |
用于在TO关键字子句之后指定新的列名。 |
在以上语法中,
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;
OR
ALTER TABLE table_name
RENAME column_name_2 TO new_column_name_2;
如果我们重命名由其他数据库对象(例如
外键约束,视图,存储过程和触发器和 PostgreSQL 还将修改其所有依赖对象。
PostgreSQL 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)
);
输出
执行上述命令后,我们将显示以下消息窗口,其中显示
Students 表已创建。
CREATE TABLE Student_groups (
Stu_id serial PRIMARY KEY,
Stu_name VARCHAR NOT null
);
输出
执行上述命令后,我们将看到下面的消息窗口,该窗口指示已创建
Student_groups 表。
此后,我们将创建一个
student_data视图 ,这取决于上面的
学生和学生组表
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 列重命名为
学生表的
电子邮件,我们将对ALTER TABLE RENAME
使用以下语句> COLUMN 命令:
ALTER TABLE Students
RENAME COLUMN St_email TO email;
输出
执行上述命令后,我们将获得下面的消息窗口,其中
Students table 已被更改。
使用RENAME COLUMN重命名具有相关对象的列的示例
在此示例中,我们将使用ALTER TABLE RENAME COLUMN命令将
Stu_name 列重命名为
Student_groups 表的
name 。
Stu_name 列用于
Student_data视图。
ALTER TABLE Student_groups
RENAME COLUMN Stu_name TO name;
输出
执行上述命令后,我们将看到以下消息窗口,其中说明
student_groups表已被更改。
现在,我们可以使用以下命令验证列名称是否已被修改在以下屏幕截图中给出的命令:
我们在视图定义中可以看到,则Stu_name列已更改为name。
使用多个RENAME COLUMN重命名多个列的示例
这些语句将两列重命名为
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命令:
输出
执行上述命令后,我们将获得以下输出: