2017-09-24 245 views
0

我想从.csv文件中将数据种入psql表。 这是设置:如何将数据从.csv文件中导入到postgres数据库表中?

data.csv:
name,price,section Aluminum Foil,8.84,miscellaneous Apples,10.81,produce

我正在使用节点的pg模块来连接数据库grocery_store有1台grocery_items的列id, name, price and section

const Client = require('pg').Client 
const connectionString = 'postgresql://localhost:5432/grocery_store' 
const pg = new Client({ connectionString: connectionString }) 

如何从data.csv我现在种子数据到grocery_items表?

我已经试过pg-copy-streams模块和他们建议做:

var fs = require('fs'); 
var pg = require('pg'); 
var copyFrom = require('pg-copy-streams').from; 

pg.connect(function(err, client, done) { 
    var stream = client.query(copyFrom('COPY my_table FROM STDIN')); 
    var fileStream = fs.createReadStream('some_file.tsv') 
    fileStream.on('error', done); 
    fileStream.pipe(stream).on('finish', done).on('error', done); 
}); 

但我得到pg.connect不是一个函数错误,当我尝试这样做。

+0

MySQL是不同的产品。 – Shadow

+0

@baibhavx你是否得到这个工作?我对同一个问题感到好奇。 –

+1

@MihirPatel'\ copy grocery_items(name,price,section)FROM'./data.csv'DELIMITER','CSV HEADER;'解决了我的问题! – baibhavx

回答

1

它应该工作正常。

创建表:从CSV

CREATE TABLE my_table 
(name varchar(50), price int, section varchar(50)); 

复制数据文件到表:

COPY my_table FROM '/path/to/csv/my_table.txt' WITH (FORMAT csv); 
相关问题