Heim > Artikel > Web-Frontend > Wie erreicht man mit pg-promise effiziente mehrreihige Einfügungen?
Einfügen mehrerer Zeilen mit pg-promise
Das Einfügen mehrerer Zeilen in eine Datenbank mit einer einzigen INSERT-Abfrage kann die Leistung erheblich verbessern. In pg-promise gibt es mehrere Methoden, die Sie für mehrzeilige Einfügungen verwenden können.
Die Verwendung von ColumnSet und Einfügungshelfern aus dem Helfer-Namespace ist der empfohlene Ansatz für eine optimierte Leistung. Erstellen Sie zunächst ein ColumnSet-Objekt, das die Spalten definiert, in die Sie Daten einfügen möchten. Verwenden Sie dann den Einfügehelfer, um die INSERT-Abfrage mit den bereitgestellten Werten zu generieren. Die Abfrage wird mit der entsprechenden Anzahl von Wertplatzhaltern generiert und die VALUES-Klausel enthält die bereitgestellten Daten. Hier ist ein Beispiel:
<code class="javascript">const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}]; const query = insert(values, cs);</code>
Dadurch wird die folgende INSERT-Abfrage generiert:
<code class="sql">INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')</code>
Sie können die Abfrage mit db.none(query) ausführen.
SQL-Injection-Schutz
Bei Verwendung des Einfügehelfers werden die von Ihnen angegebenen Werte automatisch parametrisiert und bieten so Schutz vor SQL-Injections. Wenn Sie jedoch Schema-/Tabellen-/Spaltennamen dynamisch einfügen, ist es wichtig, SQL-Namen zu verwenden, um mögliche SQL-Injection-Angriffe zu verhindern.
Einfügen mit Rückgabewerten
Wenn Sie die generierten IDs oder andere Werte aus einer mehrzeiligen Einfügung abrufen möchten, können Sie RETURNING an Ihre Abfrage anhängen und sie mit db.many ausführen. Dadurch wird ein Array von Objekten zurückgegeben, die die angeforderten Daten enthalten.
Fazit
Die Verwendung des ColumnSet und der Einfügehilfen zusammen mit SQL-Namen bietet eine sichere und effiziente Möglichkeit, Multi durchzuführen -row fügt mit pg-promise ein.
Das obige ist der detaillierte Inhalt vonWie erreicht man mit pg-promise effiziente mehrreihige Einfügungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!