Skip to content

Pass in an array of data [bulk insert] using an insert statement #880

Closed
@skilbjo

Description

@skilbjo

Hi,

How can I pass in an array of 1,000 elements and have pg do a bulk insert into the database?

I am trying to solve this problem brought up here, but using postgres instead

var sql = 'insert into '+table+
    ' (Month, Merchant_Id, Merchant_Descriptor, Network, Qualification_Code, Transaction_Type, '+ 
    ' Issuer_Type, Card_Type, Txn_Count, Txn_Amount, ' +
    'Interchange) values ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11)';

psql.connect();
reduceArray(large_array, function(small_array){
    db(small_array);
});

var reduceArray = function(arr, cb){
    var size = 1000,
     small_array = []
     ;

    for (var i=0; i<arr.length; i+=size){
        var chunk = arr.slice(i,i+size);
        small_array.push(chunk);
    }
    cb(small_array);
};

db insert:

var db = function(small_array){
    async.times(small_array.length, function(n, next){
        var data = small_array[n]; 
            psql.query(sql, [data], function(err,result){
                next(err, result);
            });
    }, function(err){
        console.log(err);
    });
};

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions