首頁 > web前端 > js教程 > 主體

如何透過pg-promise實現高效的多行插入?

Patricia Arquette
發布: 2024-11-01 09:49:02
原創
785 人瀏覽過

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

使用 pg-promise 進行多行插入

使用單一 INSERT 查詢將多行插入資料庫可以大幅提高效能。在 pg-promise 中,有多種方法可以用於多行插入。

使用 ColumnSet 並從 helpers 命名空間插入 helpers 是最佳化效能的建議方法。首先,建立一個 ColumnSet 對象,它定義要向其中插入資料的列。然後,使用插入幫助程式使用提供的值產生 INSERT 查詢。將使用適當數量的值佔位符產生查詢,並且 VALUES 子句將包含提供的資料。以下是一個範例:

<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>
登入後複製

這將產生以下 INSERT 查詢:

<code class="sql">INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')</code>
登入後複製

您可以使用 db.none(query) 來執行查詢。

SQL 注入保護

使用插入助理時,您提供的值會自動參數化,從而提供針對 SQL 注入的保護。但是,如果您要動態插入架構/表/列名稱,則使用 SQL 名稱來防止潛在的 SQL 注入攻擊至關重要。

帶回傳值插入

如果您想從多行插入中檢索產生的ID 或任何其他值,您可以將RETURNING 附加到查詢並使用db. many 執行它。這將傳回包含所請求資料的物件數組。

結論

使用ColumnSet 和插入幫助程序以及SQL 名稱提供了一種安全有效的方法來執行多個操作-帶有pg-promise 的行插入。

以上是如何透過pg-promise實現高效的多行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!