2016-09-27 127 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