首頁  >  文章  >  web前端  >  pg-promise 如何有效率地處理 PostgreSQL 中的多行插入?

pg-promise 如何有效率地處理 PostgreSQL 中的多行插入?

Barbara Streisand
Barbara Streisand原創
2024-10-31 01:14:18676瀏覽

How can pg-promise efficiently handle multi-row inserts in PostgreSQL?

使用 pg-promise 進行多行插入

在單一查詢中插入多行是批次操作的有效方法。 pg-promise 透過其基於數組的機制為多行插入提供無縫支援。

多行插入語法

要插入多行,您可以定義它們作為物件數組,每個物件代表一行:

const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}];

若要產生多行插入查詢,請利用pgp.helpers 命名空間中的插入助理:

const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'});
const query = insert(values, cs);

這會產生以下查詢:

INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2')

查詢執行

查詢執行
await db.none(query);
查詢>

您可以使用none 方法執行產生的查詢:

動態SQL 名稱和SQL 注入保護

Pg-promise 使用佔mise 使用佔位元符($1、$2 等)作為查詢參數,而不是字串插值。這種方法可以防止 SQL 注入漏洞,因為函式庫會在建構查詢之前清理參數。

  • 附加說明
  • 傳回新記錄ID: 若要擷取新插入記錄的ID,請將RETURNING id 附加到查詢並使用Many 方法來執行它。

錯誤處理:

要處理潛在錯誤,請將查詢產生包裝在一個在產生失敗時拋出異常的函數。 總之,pg-promise 提供了一個強大的解決方案來執行多行插入,確保資料完整性和效能效率。利用插入幫助程式和動態 SQL 名稱以獲得最佳結果。

以上是pg-promise 如何有效率地處理 PostgreSQL 中的多行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn