postgre根据postgres的唯一记录将一列从一个sql表转移到另一个sql表



我有两个sql(postgres(表,我需要从一个表插入一列到另一个表。请注意,每个表包含大约1亿条记录

例如,我的表模式:

first_table:
id int, first_column int, second_column int, third_column;
second_table:
id int, fourth_column int;

注意,两个表中的id列都是主键。

我需要得到下表:

first_table:
id int, first_column int, second_column int, third_column int, fourth_column int;

简而言之,我需要根据id(主键(列合并这两个表。

我试过:

  1. 为first_table添加一个名为quarth_column的空列,并对其进行更新

UPDATE first_column AS f
SET fourth_column = t.fourth_column
FROM second_table AS t
WHERE f.id = t.id;

这种方法有效,但每个sql表包含大约1亿条记录,而且这种解决方案需要大量时间(对我的程序来说是关键时间(。

  1. 使用一些类型的postgres联接,但文档中的示例让我失望

是否存在某种方法或规则可以在短时间内进行更新/传输。也许我应该使用一些高级的大数据库,比如SparkSQL或其他什么。

谨致问候,qwew

我假设您已经有了一个成功填充first_tablesecond_table的系统。

如果是这样的话,那么当你需要把数据放在一起时,把这两个表连接起来:

select f.id, f.first_column, f.second_column, f.third_column, s.fourth_column
from first_table f
join second_table s
on s.id = f.id
where f.first_column = 200
and s.fourth_column = 110

如果这些表有1亿条记录,那么我假设您使用了一些条件来限制返回的行,如我的示例中的where子句中所示。

相关内容

  • 没有找到相关文章

最新更新