如何在不使用copy命令的情况下将csv文件导入postgresql表

时间:2017-02-07 07:47:25

标签: sql ruby postgresql

我打算使用insert命令或批量插入但不能复制命令。请帮忙!

1 个答案:

答案 0 :(得分:1)

您使用ruby标记了自己的问题,因此红宝石的方式可能是:

安装smarter_csv gem(https://github.com/tilo/smarter_csv),它允许您将每一行解析为一个散列,其中列标题用作键。

inserts = SmarterCSV.process('/path/to/file.csv')
# [
#   { col_name: "value from row 1", ... },
#   { col_name: "value from row 2", ... }
# ]

然后您可以使用您喜欢的任何ORM或数据库连接器,例如ActiveRecord

MyModel.insert(inserts)