如何使用 copy 命令在 postgres 中将数据从一个表复制到另一个表

我们使用 copy 命令将一个表的数据复制到数据库外的一个文件中。

是否可以使用命令将一个表的数据复制到另一个表。

如果是,请分享查询。

或者有没有更好的方法,比如我们可以使用 pg _ dump 或类似的东西。

156869 次浏览

You cannot easily do that, but there's also no need to do so.

CREATE TABLE mycopy AS
SELECT * FROM mytable;

or

CREATE TABLE mycopy (LIKE mytable INCLUDING ALL);


INSERT INTO mycopy
SELECT * FROM mytable;

如果您只需要选择一些列或重新排序它们,您可以这样做:

INSERT INTO mycopy(colA, colB)
SELECT col1, col2 FROM mytable;

还可以选择性地对目标表执行 pg _ dump 和还原操作。

假设已经有一个表,并且您想要将这个表中的所有记录复制到另一个数据库中当前不存在的表中,那么下面的查询将为您完成这项任务:

SELECT * into public."NewTable" FROM public."ExistingTable";

如果两个表中的列相同(名称和数据类型) ,则可以使用以下内容

INSERT INTO receivingtable (SELECT * FROM sourcetable WHERE column1='parameter' AND column2='anotherparameter');