【问题标题】:Copy data from one table to another table in Postgres which contains many Columns将数据从一个表复制到 Postgres 中包含许多列的另一个表
【发布时间】:2020-02-07 07:07:34
【问题描述】:

我想在 Postgres 中将数据从表 A 复制到表 B。表 A 包含 40 列,表 B 包含 20 列。就像表 B 是表 A 的子集,这意味着 - 表 B 仅包含表 A 中的一些列。

如果列数较少,我已经找到了用于复制数据的答案https://stackoverflow.com/a/7483174/12556735

既然有很多列,有什么方法可以在不提及列名的情况下复制数据?

【问题讨论】:

  • 不提列名恐怕 PostgreSQL 无法知道您要将哪些数据复制到其他表中。
  • 如果 B 是 A 的子集,为什么还需要 B?
  • 问题不在于“WHY”,而在于“HOW”。我的问题非常广泛,我以简化的方式问了它。
  • '有什么方法可以在不提及列名的情况下复制数据?' - 没有

标签: python mysql postgresql


【解决方案1】:

选择 1: 如果您注意到,您推荐的问题/答案自己回答您的问题,因为对列数没有任何限制。但是您应该知道原始列定义和所需的列列表。它可以很好地运行在许多列上。

选择 2: 如果列是未知的,你应该尝试使用

create table 'newtable' as (select * from 'existingtable');

选择 3: 如果列是未知的,并且您想创建一个包含选定列的新表! (这意味着您应该了解列),您应该尝试

select * from information_schema.columns where table_schema= 'yourdatabase' and table_name= 'yourtable';

在列列表中,您应该使用 column_name、column_type、is_nullable 等可以在您的脚本中使用。

【讨论】:

    猜你喜欢
    • 2020-11-03
    • 2012-12-15
    • 2011-03-12
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多