如何将数据从.csv文件中导入到postgres数据库表中?
问题描述:
我想从.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
不是一个函数错误,当我尝试这样做。
答
它应该工作正常。
创建表:从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);
MySQL是不同的产品。 – Shadow
@baibhavx你是否得到这个工作?我对同一个问题感到好奇。 –
@MihirPatel'\ copy grocery_items(name,price,section)FROM'./data.csv'DELIMITER','CSV HEADER;'解决了我的问题! – baibhavx