📅  最后修改于: 2023-12-03 15:39:15.199000             🧑  作者: Mango
在PostgreSQL中,我们可以使用CREATE TABLE AS语句复制表并覆盖其中的列。但是,如果表中已经有命名相同的列,则会抛出错误。在此情况下,我们需要执行以下步骤来将列从一个表复制到另一个没有列重复的表中。
在此步骤中,我们将创建一个新表,它没有与源表重复的列。我们可以使用CREATE TABLE语句来创建表。
CREATE TABLE new_table_name AS SELECT * FROM source_table_name WHERE 1=0;
这将创建一个新表,该表包含与源表相同的列,但没有任何记录。
在此步骤中,我们需要删除新表中与源表列名相同的列。我们可以使用ALTER TABLE语句删除列。
ALTER TABLE new_table_name DROP COLUMN column_name;
这将从新表中删除指定的列。
在此步骤中,我们将从源表中选择数据并将其插入新表中。
INSERT INTO new_table_name (column1, column2, ..., columnN) SELECT column1, column2, ..., columnN FROM source_table_name;
这将从源表中选择数据并将其插入新表中。请注意,我们需要指定要插入的列和它们的顺序。
现在,我们已经完成了将列从一个表复制到另一个没有列重复的表中的过程。
在本文中,我们学习了将列从一个表复制到另一个没有列重复的PostgreSQL表的过程。我们首先创建一个不带任何记录的新表。然后,我们删除新表的与源表列名相同的列。最后,我们从源表中选择数据并将其插入新表中。