【发布时间】:2014-12-08 21:57:11
【问题描述】:
我有两张桌子。其中之一是一个临时表,我从一个大的 CSV 文件中复制数据。之后,我使用临时表更新我的另一个表(请参阅此答案:Copy a few of the columns of a csv file into a table)。
当我使用(更新的)CSV 文件(来自 bash 中的 grep 的数据,每次更新增加行数)再次更新我的临时表时,我想删除不受更新影响的行。我可以有一个比包含所有数据的临时表更小的临时表。
首先:最好删除临时表中的所有数据并用整个更新的 CSV 数据填充它,然后更新/插入另一个表。 第二:还是先更新临时表?
所以这是桌子大小的问题。我说的是 500k 行(带有几何列)。
一个例子:
table
1, NULL
2, NULL
temp table
1, hello
2, good morning
CSV
1, hello there
2, good morning
3, good evening
temp table
1, hello there
2, good morning
3, good evening
或
temp table
1, hello there
3, good evening
所以我的问题是如何使用 CSV 文件更新表、插入新行、更新旧行以及删除不受更新影响的行。
【问题讨论】:
标签: sql postgresql csv sql-update insert-update