Heim  >  Artikel  >  Web-Frontend  >  Wie erreicht man mit pg-promise effiziente mehrreihige Einfügungen?

Wie erreicht man mit pg-promise effiziente mehrreihige Einfügungen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-01 09:49:02787Durchsuche

How to Achieve Efficient Multi-Row Inserts with pg-promise?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn