mysql - Node.js 更新 mysql 数据库

标签 mysql node.js

我正在使用node.js mysql包,我可以在其中创建连接,并在connection.query(..) ..之后关闭连接。

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

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

    sudo 代码: 1. 从表中删除 id = ..[], 2.插入表集...

  2. 检查我想要更新/插入的每一行,如果该id在mysql数据库中存在,则发送查询更新,否则插入。

    sudo 代码:1. 对于列表中的每一行 2.检查mysql中是否存在该行 3.如果存在,则发送查询更新; 如果不存在,则发送查询插入

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

最佳答案

在重复 key 更新时使用插入...

示例:

在重复键更新`col3`='v3'时插入`tableName`(col1、col2、col3)值('v1'、'v2'、'v3')

*如果本例中的键是 auto_increment 计数器,则此方法将不起作用。

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

关于mysql - Node.js 更新 mysql 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39728299/

相关文章:

unix - 须藤路径 - 没有找到 Node.js

php - 带有 LIKE 的递归 SELECT 类别面包屑在单个查询中

php - 从数据库表中获取值到选择框中

php - mysql查询以在接下来的2个月内获得结果

node.js - 我应该在使用 .pipe() 方法后关闭 ReadStream

node.js - Vagrant 上的 nodejs - 无法从外部加载页面

MySQL 选择 json 格式的两个时间值之间的行

MYSQL极难Select查询

javascript - Node 应用程序中包含 js 文件的问题

javascript - Sequelize - 在关联的其他地方使用时防止破坏行