使用 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 注入漏洞,因為函式庫會在建構查詢之前清理參數。
錯誤處理:
要處理潛在錯誤,請將查詢產生包裝在一個在產生失敗時拋出異常的函數。 總之,pg-promise 提供了一個強大的解決方案來執行多行插入,確保資料完整性和效能效率。利用插入幫助程式和動態 SQL 名稱以獲得最佳結果。以上是pg-promise 如何有效率地處理 PostgreSQL 中的多行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!