2016-09-27 3 views
0

Ich verwende das mysql Paket node.js, wo ich eine Verbindung erstellen kann und nach connection.query (..) .., schließe die Verbindung.node.js update mysql Datenbank

Ich habe eine Sammlung von Zeilen, die ich in der MySQL-Datenbank aktualisieren möchte, und ich weiß nicht, ob die Zeilen vorhanden sind oder nicht. Hier habe ich zwei Lösungen, aber ich weiß nicht, was ist besser:

  1. löschen alle Zeilen Ich möchte in MySQL-Datenbank aktualisieren und fügen Sie alle Zeilen mit einer connection.query (..) ..

    sudo Code: 1. aus der Tabelle löschen, wo id = .. [], 2. Einsatz in Tisch-Set ...

  2. Überprüfung jeder Zeile, die I/Insert aktualisiert werden soll, wenn die ID in existiert MySQL-Datenbank, dann Abfrage senden, um zu aktualisieren, andernfalls einfügen.

    sudo code: 1. für jede Zeile in der Liste 2. Überprüfen Sie, ob die Zeile in mysql vorhanden ist 3. Wenn vorhanden, senden Sie eine Abfrage zum Aktualisieren; wenn nicht vorhanden ist, dann Abfrage

für die zweite Lösung einzusetzen senden, besorgt ich, dass zu zeitaufwendig sein könnte. Hat jemand ein paar Vorschläge? Was ist der beste Weg, dies zu tun? Ich bin neu in diesen Sachen, so dass ich nicht weiß, ob es besser ist, mehrere Abfragen innerhalb einer for-Schleife zu senden, vor allem im Knoten jeder Verbindung. Abfrage ist eine Funktion mit Rückruf. Welcher hat eine bessere Gesamtleistung ?, oder andere Lösungen?

+0

es ist mysql: beides zugleich: 'einfügen .. auf doppelten Schlüssel update'. Problem gelöst. –

Antwort

0

Verwenden insert ... on duplicate key update

Beispiel:

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

* Dies wäre ein auto_increment Zähler nicht funktionieren, wenn der Schlüssel in diesem Fall ist.

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

Verwandte Themen