我们使用复制命令将一个表的数据复制到数据库外部的文件中。
是否可以使用命令将一个表的数据复制到另一个表。
如果是,任何人都可以分享查询。
或者有没有更好的方法,比如我们可以使用 pg_dump 或类似的东西。
insert into other (col1, col2) select col1, col2 from one
INSERT
语句中?
你不能轻易做到这一点,但也没有必要这样做。
CREATE TABLE mycopy AS
SELECT * FROM mytable;
或者
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 并仅恢复目标表。
如果两个表中的列相同(名称和数据类型),那么您可以使用以下
INSERT INTO receivingtable (SELECT * FROM sourcetable WHERE column1='parameter' AND column2='anotherparameter');
假设已经有一个表,并且您想将该表中的所有记录复制到数据库中当前不存在的另一个表中,那么以下查询将为您执行此任务:
SELECT * into public."NewTable" FROM public."ExistingTable";
select ... into
语法,取而代之的是符合标准的 create table ... as select ...
INSERT INTO mycopy SELECT * FROM mytable
方法时,我得到ERROR: column "order" is of type integer but expression is of type text LINE 2: SELECT * FROM django_apps.about_post
需要明确的是,order
在两个表中都是一个整数。psql
的\d
输出INSERT INTO mycopy (a, b) SELECT * FROM mytable
)来避免这种情况,但我来这里是为了尝试找到替代方法。我的表具有所有相同的列,只是顺序不同。事实证明这是不可能的。 stackoverflow.com/questions/1267427/…