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

Moh*_*d23 53 sql postgresql

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

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

如果是,可以请任何人分享查询.

或者有更好的方法,比如我们可以使用pg_dump或类似的东西.

感谢您的帮助.

此致,莫希特

Cra*_*ger 121

你不能轻易做到这一点,但也没有必要这样做.

CREATE TABLE mycopy AS
SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)

要么

CREATE TABLE mycopy (LIKE mytable INCLUDING ALL);

INSERT INTO mycopy
SELECT * FROM mytable;
Run Code Online (Sandbox Code Playgroud)

如果您只需要选择某些列或重新排序它们,则可以执行以下操作:

INSERT INTO mycopy(colA, colB)
SELECT col1, col2 FROM mytable;
Run Code Online (Sandbox Code Playgroud)

您还可以执行选择性pg_dump并仅恢复目标表.

  • @RyanM 一样。您可以通过使用列名来避免这种情况,例如`INSERT INTO mycopy (a, b) SELECT * FROM mytable`,但我来这里是为了寻找替代方法。我的表都有相同的列,只是顺序不同。事实证明这是不可能的。/sf/ask/88719921/ (4认同)
  • 请注意,使用(INCLUDING ALL)创建的表将与另一个表共享序列 (3认同)
  • 我刚刚在不同的模式中为应用程序创建了重复的表,但是当我尝试`INSERT INTO mycopy SELECT*FROM mytable`方法时,我得到`ERROR:column"order"是整数类型但表达式是文本类型LINE 2:SELECT*FROM django_apps.about_post`要清楚,`order`是两个表中的整数. (2认同)

小智 9

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

INSERT INTO receivingtable (SELECT * FROM sourcetable WHERE column1='parameter' AND column2='anotherparameter');
Run Code Online (Sandbox Code Playgroud)