PostgreSQL 重命名列 PostgreSQL 更改列类型 PostgreSQL 临时表 PostgreSQL 重命名列 在本节中,我们将了解 PostgreSQL重命名列条件如何在Alter table命令中工作以重命名表的一个和多个列。 PostgreSQL 重命名 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 将引发错误。 对于重命名条件,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 重命名列的例子 让我们看一些示例,以便更好地理解我们将在哪里使用 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列到电子邮件中的学生表中,我们将使用下面的ALTER TABLE RENAME语句COLUMN命令: ALTER TABLE Students RENAME COLUMN St_email TO email; 输出 执行上述命令后,我们得到以下消息窗口,其中学生表已被更改。 使用 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 重命名多个列的示例 这些语句重命名两列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; 输出 一旦我们执行上述命令,我们将得到以下输出: PostgreSQL 更改列类型 PostgreSQL 临时表