Wie würde man eine Masseneinfügung in mySQL durchführen, wenn man so etwas wie https://github.com/felixge/node-mysql verwendet?
123
Wie würde man eine Masseneinfügung in mySQL durchführen, wenn man so etwas wie https://github.com/felixge/node-mysql verwendet?
Antworten:
Bulk-Einfügungen sind mithilfe eines verschachtelten Arrays möglich (siehe Github-Seite)
Sie fügen einfach ein verschachteltes Array von Elementen ein.
Ein Beispiel finden Sie hier
Hinweis:
values
ist ein Array von Arrays, die in ein Array eingeschlossen sindEs gibt auch ein völlig anderes Node-MSQL- Paket für das Einfügen von Massen
quelle
conn.execute()
bei der Verwendung vorbereiteter Anweisungen? Wenn nicht, ist es möglich, vorbereitete Anweisungen beim Einfügen zu verwenden? Vielen Dank.@ Ragnar123 Antwort ist richtig, aber ich sehe viele Leute in den Kommentaren sagen, dass es nicht funktioniert. Ich hatte das gleiche Problem und es scheint, als müssten Sie Ihr Array
[]
wie folgt einpacken :Es muss wie
[pars]
in die Methode übergeben werden.quelle
?
anstatt??
die richtige Gruppierung zu erhalten.Ich habe mich nach einer Antwort zum Masseneinfügen von Objekten umgesehen.
Die Antwort von Ragnar123 führte mich zu dieser Funktion:
Ich hoffe es hilft!
quelle
Ich lief in diese heute ( mysql 2.16.0) und dachte , dass ich meine Lösung teilen würde:
quelle
Alle Requisiten an Ragnar123 für seine Antwort.
Ich wollte es nur nach der Frage von Josh Harington erweitern, um über eingefügte IDs zu sprechen.
Diese werden sequentiell sein. Siehe diese Antwort: Greift eine mehrzeilige MySQL-Einfügung sequentielle Autoincrement-IDs?
Daher können Sie dies einfach tun (beachten Sie, was ich mit der result.insertId gemacht habe):
(Ich habe die Werte aus einem Array von Objekten abgerufen, die ich persistentObjects genannt habe.)
Hoffe das hilft.
quelle
Dies ist ein schnelles "Raw-Copy-Paste", das abgeschnitten wurde, um eine Dateispalte in MySQL mit node.js> = 11 zu verschieben
250k Reihe in wenigen Sekunden
quelle
?
nachherVALUES
ohne Klammern beizubehalten. Auf diese Weise können Arrays von Spaltenarrays automatisch in Masseneinfügungen verarbeitet werden. Verwendet es, um Hunderte von Megabyte an Zugriffsprotokollen in MySQL zu analysieren.Für den Fall, dass dies hier benötigt wird, haben wir das Einfügen eines Arrays gelöst
Anfrage ist vom Postboten (Sie werden sich "Gäste" ansehen)
Und wie wir geschrieben haben
quelle
Wenn
Ragnar
die Antwort bei Ihnen nicht funktioniert. Hier ist wahrscheinlich warum (basierend auf meiner Erfahrung) -Ich habe das
node-mysql
Paket nicht wie gezeigt verwendetRagnar
. Ich habemysql
Paket verwendet. Sie sind anders (wenn du es nicht bemerkt hast - genau wie ich). Aber ich bin mir nicht sicher, ob es irgendetwas damit zu tun hat, dass es?
nicht funktioniert, da es für viele Leute, die dasmysql
Paket verwenden, zu funktionieren schien .Versuchen Sie es mit einer Variablen anstelle von
?
Folgendes hat bei mir funktioniert -
Hoffe das hilft jemandem.
quelle
Einige Dinge, die ich erwähnen möchte, sind, dass ich das MySQL- Paket verwende, um eine Verbindung mit meiner Datenbank herzustellen. Was Sie unten gesehen haben, ist Arbeitscode, der für das Einfügen von Massenabfragen geschrieben wurde.
quelle
Ich hatte ein ähnliches Problem. Es wurde nur eines aus der Liste der Arrays eingefügt. Es hat funktioniert, nachdem die folgenden Änderungen vorgenommen wurden.
Hoffe das hilft. Ich benutze MySQL npm.
quelle
Die Masseneinfügung in Node.js kann mit dem folgenden Code erfolgen. Ich habe viele Blogs verwiesen, um diese Arbeit zu bekommen.
Bitte beziehen Sie sich auch auf diesen Link. https://www.technicalkeeda.com/nodejs-tutorials/insert-multiple-records-into-mysql-using-nodejs
Der Arbeitscode.
Hoffe das wird dir helfen.
quelle