PostgreSQL 将所有行从一个表插入到另一个具有相同列名和类型但位置不同的表

问题描述

我在 Postgres 9.6 中的用例是需要将许多宽(很多列)表中的所有行复制到“相同”的不同表中。不同的表具有相同的类型、索引等相同的列,但列的位置不同,导致以下两种尝试都失败。有没有办法按名称而不是位置匹配列,而不用在语句中写出所有列?

INSERT INTO table_b select * FROM table_a

失败 ERROR: column "request_base" is of type boolean but expression is of type text

INSERT INTO table_b
   select (data::table_b).*
     FROM (select * from table_a) as data;

失败 ERROR: cannot cast type record to table_b. DETAIL: Cannot cast type uuid to boolean in column 27.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)