使用 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')
查询执行
您可以使用 none 方法执行生成的查询:
await db.none(query);
动态 SQL 名称和 SQL 注入保护
Pg-promise 使用占位符($1、$2 等)作为查询参数,而不是字符串插值。这种方法可以防止 SQL 注入漏洞,因为库会在构造查询之前清理参数。
附加说明
总之,pg-promise 提供了一个强大的解决方案来执行多行插入,确保数据完整性和性能效率。利用插入帮助程序和动态 SQL 名称以获得最佳结果。
以上是pg-promise 如何高效处理 PostgreSQL 中的多行插入?的详细内容。更多信息请关注PHP中文网其他相关文章!