我CSV文件導入到表導入CSV於Postgres在使用COPY時添加其他列稱爲import_csv
如何從軌
表已列first_name, last_name, email, phone_number, organization_id
我導入CSV使用以下代碼
file = params[:file]
filePath = file.path
fileName = File.basename filePath
pg = ActiveRecord::Base.connection
rc = pg.raw_connection
rc.exec("COPY import_csv (first_name, last_name, email, phone_number) FROM STDIN WITH CSV")
file = File.open(filePath)
file::gets
while !file.eof?
# Add row to copy data
rc.put_copy_data(file.readline)
end
我想知道如何設置organization_id字段,而不必將其導入到.CSV文件中。
我正在插入具有列一個已經存在的表中導入的時間 – RickS
@RickS我看到,作爲變通解決方案,您可以創建臨時表,將csv導入到其中,並使用psql'insert'命令從臨時錶轉換爲實際表,如此處所述https://stackoverflow.com/questions/12618232/copy-一些csv-files-into-a-tables的列 – Med
我試過了,但是使用這種方法的時間長了20倍,我希望有一些方法可以修改COPY命令,所以我可以爲一行添加一個值,但它已經幾個小時了,我還沒有開始und anything – RickS