如何解决根据唯一记录postgres将一列从一个sql表转移到另一列
我有两个sql(postgres)表,我需要从一个表到另一表插入一列。 注意每个表包含大约1亿条记录
例如,我的表架构:
first_table:
id int,first_column int,second_column int,third_column;
second_table:
id int,fourth_column int;
两个表中的Note id列都是主键。
我需要获取下表:
first_table:
id int,third_column int,fourth_column int;
几句话,我需要基于id(主键)列合并这两个表。
我尝试过:
- 在first_table中添加一个名为four_column的空列,并对其进行更新。
UPDATE first_column AS f
SET fourth_column = t.fourth_column
FROM second_table AS t
WHERE f.id = t.id;
此方法有效,但是每个sql表包含大约1亿条记录,并且此解决方案要花费很多时间(对我的程序来说很关键)。
- 使用某些类型的postgres连接,但是文档中的示例令我失望。
是否存在一些可以在短时间内进行此更新/传输的方法或规则。也许我应该使用一些高级的大数据库,例如SparkSQL或其他。
关于, qwew
解决方法
我假设您已经有一个可以成功填充first_table
和second_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
子句。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。