我正在使用node.js mysql包,我可以在其中创建连接,并在connection.query(..) ..之后关闭连接。
我有一个要在 mysql 数据库中更新的行集合,但我不知道这些行是否存在。这里我有两种解决方案,但我不知道哪一种更好:
删除我想要在mysql数据库中更新的所有行并使用一个connection.query(..)插入所有行..
sudo 代码: 1. 从表中删除 id = ..[], 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/