使用pg-promise 進行多行插入
使用單一查詢將多行插入到資料庫表中可以顯著提高效能,尤其是在處理大型資料集。 Pg-promise 是一個強大的 SQL 查詢建構器和執行器函式庫,提供了一種方便且有效率的方法來執行多行插入。
使用助手進行多行插入
要使用 pg-promise 插入多行,您可以使用 helpers 命名空間。此命名空間提供了一組實用函數,可以輕鬆建構可參數化的 SQL 查詢。
<code class="javascript">const pgp = require('pg-promise')({ capSQL: true // capitalize all generated SQL }); const db = pgp(/*connection*/); const {ColumnSet, insert} = pgp.helpers; // our set of columns, to be created only once (statically), and then reused, // to let it cache up its formatting templates for high performance: const cs = new ColumnSet(['col_a', 'col_b'], {table: 'tmp'}); // data input values: const values = [{col_a: 'a1', col_b: 'b1'}, {col_a: 'a2', col_b: 'b2'}]; // generating a multi-row insert query: const query = insert(values, cs); //=> INSERT INTO "tmp"("col_a","col_b") VALUES('a1','b1'),('a2','b2') // executing the query: await db.none(query);</code>
ColumnSet 類別定義要插入的列,而 insert 函數則取得要插入的資料值並產生SQL 查詢。這種方法性能很高,並且允許單行和多行插入。
SQL 注入保護
關於SQL 注入保護的附帶問題,它是重要的是要理解使用佔位符($1、$2 等)本身並不能保證保護。必須將佔位符與適當的輸入驗證和清理相結合,以防止執行惡意 SQL 命令。 Pg-promise 預設採用這種方法,提供了一種將資料插入資料庫的安全方法。
其他注意事項和額外內容
總之,pg-promise 的 helpers 命名空間可以輕鬆執行多行插入,防止 SQL 注入,同時最佳化效能。
以上是如何使用 pg-promise 在 PostgreSQL 資料庫中有效地執行多行插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!