如何使用 mysljs 在 mySql 和 node.js 中批量插入
Posted
技术标签:
【中文标题】如何使用 mysljs 在 mySql 和 node.js 中批量插入【英文标题】:How to bulk insert in mySql and node.js using mysljs 【发布时间】:2017-05-01 10:48:58 【问题描述】:我无法使用 node.js lib mysljs 在我的数据库中使用批量插入。
我遵循了以下的答案:
How do I do a bulk insert in mysql using node.js
没有成功。
var sql = "INSERT INTO resources (resource_container_id, name, title, extension, mime_type, size) VALUES ?";
var values = [
[1, 'pic1', 'title1', '.png', 'image/png', 500],
[1, 'pic2', 'title2', '.png', 'image/png', 700]];
return connection.query(sql, [values], (result) =>
if (err) throw err;
connection.end();
);
我不断收到错误:
'You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near \'?\' at line 1'
我也尝试使用 bluebird 提出查询方法,但没有成功,我再次遇到同样的错误。
【问题讨论】:
回调中的错字应该是(err, result)=>...
,但这可能不是您在此处描述的错误,因为错误实际上是在某个时候打印的,所以我认为这只是一个复制错误。跨度>
【参考方案1】:
您需要用重音(反引号)字符标记您的键,例如:`key`
让你的query
像这样:
var sql = "INSERT INTO resources (`resource_container_id`, `name`, `title`, `extension`, `mime_type`, `size`) VALUES ?";
【讨论】:
对我不起作用,仍然出现错误。【参考方案2】:尝试在问号周围使用 ()
var sql = "INSERT INTO resources (resource_container_id, name, title, extension, mime_type, size) VALUES (?) ";
【讨论】:
我的 mysql2 库也有同样的问题,也无法正常工作。【参考方案3】:只有当我使用 connection.execute()
时我才会遇到同样的问题,然后实际上是因为它没有为准备好的语句实现。
我改用connection.query()
解决了这个问题。
不知道这个答案是否对任何人有帮助。
在我寻找答案时会有所帮助。
【讨论】:
【参考方案4】:尝试删除 values
周围的方括号
【讨论】:
values
周围的方括号暗示数组以上是关于如何使用 mysljs 在 mySql 和 node.js 中批量插入的主要内容,如果未能解决你的问题,请参考以下文章