微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。