如果SQLAlchemy还没有将很多记录添加到SQL数据库

时间:2018-07-13 12:53:01

标签: python flask sqlalchemy

我有一个SQL DB(Postgree),在一个表中有约2000000条记录。而且我有一个〜500000行的CSV文件。我需要检查CSV中的所有记录,如果以前没有将它们添加到DB中。我应该通过name字段对其进行检查。

我的问题是最快的方法是什么?

谢谢

1 个答案:

答案 0 :(得分:0)

  1. 将新行加载到登台表中。
  2. name列上为登台表和目标表建立索引
  3. 编写如下查询:

    INSERT INTO target (column list) SELECT column list FROM source LEFT JOIN target ON target.name = source.name WHERE target.name IS NULL

INSERT INTO target (<column list>)
SELECT <column list> FROM source
WHERE NOT EXISTS (
    SELECT * from target 
    WHERE target.name = source.name
)