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

Node.js + SQLite批量插入多行数据实现方法求助

SQLite批量插入实现方案

SQLite完全支持批量插入,你只需调整SQL语句的VALUES结构,并将所有数据按顺序平铺到参数数组中即可,不需要使用JSON格式。以下是一次性插入100条数据的完整示例:

// 定义表字段名
const columnNames = ['eins', 'zwei', 'drei', 'vier', 'fuenf', 'sechs', 'sieben', 'acht', 'neun'];
const insertCount = 100; // 要插入的总条数

// 1. 构建批量插入SQL语句
let sql = `INSERT INTO users (${columnNames.join(', ')}) VALUES `;
// 生成对应条数的占位符组,每组对应一行的9个字段
const valueGroups = Array(insertCount)
  .fill(`(${Array(columnNames.length).fill('?').join(', ')})`)
  .join(', ');
sql += valueGroups;

// 2. 生成平铺的参数数组
const objectary = [];
for (let row = 0; row < insertCount; row++) {
  // 填充当前行的9个字段值,这里用示例值,替换为你的实际业务数据即可
  for (let col = 0; col < columnNames.length; col++) {
    objectary.push(row * columnNames.length + col);
  }
}

// 3. 执行批量插入
db.run(sql, objectary, function(err) {
  if (err) {
    res.status(400).json(err.message); // 建议用400状态码标识错误请求
    return console.error(err.message);
  }

  if (this.changes > 0) {
    res.status(200).json({ success: true, insertedRows: this.changes });
  } else {
    res.status(200).json("no changes saved");
  }
});

关键说明

  • SQL语句结构:批量插入的核心是在VALUES后拼接多组(?,?,?,...),每组对应一行数据,组之间用逗号分隔
  • 参数数组要求:必须是一维平铺数组,按行顺序排列所有字段值(第1行的9个值在前,接着是第2行的9个值,以此类推)
  • 参数数量限制:SQLite默认单个语句最多支持999个参数,所以如果要插入超过111条(111*9=999),需要拆分多个批量插入语句执行

内容的提问来源于stack exchange,提问作者StackKanal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 11:25:59