You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pg-promise将JSON数据插入PostgreSQL表并映射字段

使用pg-promise将JSON数据插入PostgreSQL表

下面给出两种常用的实现方式,假设你已经安装了pg-promise包,且数据库中存在名为your_table、包含id(整数类型)和name(字符串类型)字段的表。

方法1:显式参数化插入

适合字段较少的场景,直接指定字段和对应的值:

首先初始化数据库连接:

const pgp = require('pg-promise')();
// 替换为你的数据库连接信息
const db = pgp('postgres://username:password@localhost:5432/your_db');

定义要插入的JSON数据并执行插入:

const inputData = { id: 1, name: 'abc' };

// 执行插入操作
db.none('INSERT INTO your_table(id, name) VALUES($1, $2)', [inputData.id, inputData.name])
  .then(() => console.log('数据插入成功'))
  .catch(err => console.error('插入失败:', err));

方法2:使用helpers自动生成插入语句

适合字段较多的场景,无需手动拼接字段和参数:

const pgp = require('pg-promise')();
const db = pgp('postgres://username:password@localhost:5432/your_db');

const inputData = { id: 1, name: 'abc' };

// 定义列集合,指定要插入的字段和目标表
const columnSet = new pgp.helpers.ColumnSet(['id', 'name'], { table: 'your_table' });
// 自动生成INSERT语句
const insertQuery = pgp.helpers.insert(inputData, columnSet);

// 执行查询
db.none(insertQuery)
  .then(() => console.log('数据插入成功'))
  .catch(err => console.error('插入失败:', err));

注意事项

  • 确保JSON对象的键名和表字段名完全匹配,否则会出现字段不匹配的错误
  • 使用db.none()执行无返回结果的操作,如果需要获取插入后的行数据,可以改用db.one()(确保插入一行)或db.oneOrNone()
  • 参数化查询(两种方法都是)能有效防止SQL注入,不要直接将JSON数据拼接进SQL字符串中

内容的提问来源于stack exchange,提问作者Aadarsh Unni Wilson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:31:15