如果使用像https://github.com/felixge/node-mysql这样的东西,如何在mySQL中进行大容量插入
发布于 2017-05-16 13:27:34
@Ragnar123答案是正确的,但我看到很多人在评论中说它不起作用。我也遇到了同样的问题,看起来你需要像这样用[]
包装你的数组:
var pars = [
[99, "1984-11-20", 1.1, 2.2, 200],
[98, "1984-11-20", 1.1, 2.2, 200],
[97, "1984-11-20", 1.1, 2.2, 200]
];
它需要像[pars]
一样传递到方法中。
发布于 2018-08-27 06:04:32
我今天遇到了这个(mysql 2.16.0),我想我应该分享我的解决方案:
const items = [
{name: 'alpha', description: 'describes alpha', value: 1},
...
];
db.query(
'INSERT INTO my_table (name, description, value) VALUES ?',
[items.map(item => [item.name, item.description, item.value])],
(error, results) => {...}
);
发布于 2017-08-04 06:41:39
我四处寻找关于批量插入对象的答案。
根据Ragnar123的回答,我创建了这个函数:
function bulkInsert(connection, table, objectArray, callback) {
let keys = Object.keys(objectArray[0]);
let values = objectArray.map( obj => keys.map( key => obj[key]));
let sql = 'INSERT INTO ' + table + ' (' + keys.join(',') + ') VALUES ?';
connection.query(sql, [values], function (error, results, fields) {
if (error) callback(error);
callback(null, results);
});
}
bulkInsert(connection, 'my_table_of_objects', objectArray, (error, response) => {
if (error) res.send(error);
res.json(response);
});
希望它能帮上忙!
https://stackoverflow.com/questions/8899802
复制相似问题