2016-09-27 134 views
0

我使用node.js mysql包,我可以创建连接,并在connection.query(..)..之后关闭连接。node.js更新mysql数据库

我有我想在mysql数据库中更新的行的集合,我不知道行是否存在。在这里,我有两个解决方案,但我不知道哪一个更好:

  1. 删除所有我想在mysql数据库更新和插入使用一个connection.query(..)所有行的行..

    须藤代码:1.从表中删除其中id = .. [], 2.插入到表集...

  2. 检查,我想更新/插入,如果存在ID每一行mysql数据库,然后发送查询进行更新,否则插入。

    须藤代码:1.在列表中的每一行 2.检查,如果在MySQL 3.如果存在,则发送查询以更新存在的行; 如果不存在,然后发送查询插入

第二个解决方案,我担心这可能是太费时。任何人有一些建议?做这个的最好方式是什么? 我对这些东西很陌生,所以我不知道是否最好在for循环内发送多个查询,特别是在节点中,每个connection.query都是一个带回调的函数。哪一个会有更好的整体表现?或者其他解决方案?

+0

这是MySQL的:在同一时间做两:对重复键update''插入..。问题解决了。 –

回答

0

使用insert ... on duplicate key update

例子:

insert into `tableName` (col1, col2, col3) values ('v1', 'v2', 'v3') on dupicate key update `col3`='v3'

*如果在这种情况下,关键是一个auto_increment计数器这是行不通的。

来源:http://dev.mysql.com/doc/refman/5.7/en/insert-on-duplicate.html