【发布时间】:2020-02-12 15:58:55
【问题描述】:
我对 SQL 没有那么丰富的经验,我想知道是否有更有效的方法来完成我正在做的事情。
我正在使用 python 和 SQLAlchemy 将非常大的数据集从 csv 导入 sql 表。 我只想导入 csv 中的某些列,所以我创建了一个从 csv 中获取列名的函数,然后另一个过滤掉我不需要的列(方便的是,我不需要的列在列列表的末尾)。然后,我使用 for 循环生成 INSERT INTO 命令并通过附加列名(它们在 csv 和 sql 表中相同)和读取器中每一行的值来执行它。即:
row1: INSERT INTO table (c1, c2, c3) VALUES (v1, v2, v3)
row2: INSERT INTO table (c1, c2, c3) VALUES (v4, v5, v6)
row3: INSERT INTO table (c1, c2, c3) VALUES (v7, v8, v9)
我的 csv 文件大约有 15k 行,因此您可以想象这需要相当长的时间。
有没有办法整合查询以缩短插入这些值的时间?
【问题讨论】:
标签: python mysql csv sqlalchemy