CSV / JSON 转 SQL INSERT 批量插入语句生成器

免费在线 CSV / Excel / JSON 批量转 SQL INSERT 插入语句生成器。支持拖拽上传文件、自动列名与分隔符识别、数据类型智能推断、多行批量分批插入、MySQL ON DUPLICATE KEY UPDATE 与 PostgreSQL ON CONFLICT 冲突策略。100% 浏览器纯前端运行,安全无数据泄露风险。

100% 浏览器本地运行 · 零数据上传
输入 CSV 数据 (首行为列名,支持拖拽文件) 0 行记录
生成的 SQL 批量插入语句
就绪

为什么需要 CSV / JSON 转 SQL 批量生成工具?

在后端开发、运维部署、数据字典初始化或线上数据订正中,开发者经常需要将各种异构数据快速灌入数据库:

  • 从运营或产品人员手中拿到整理好的 Excel 表格(导出为 CSV);
  • 第三方平台接口返回的 JSON 数组数据;
  • 微服务迁移时导出的轻量级离线临时测试数据集。

如果为每次临时数据导入都写一段 Python 脚本或 Java 程序,或者使用重量级客户端工具配置复杂的导入向导,往往非常耗费时间。 本工具直接在浏览器前端提供即拖即转、智能类型推断与自动批量分组,一秒生成整洁规范的 SQL 插入脚本,甚至可直接导出 .sql 文件!

批量 INSERT 与单条 INSERT 性能悬殊对比

很多开发者初学时习惯使用 for 循环执行一条一条的单行插入: INSERT INTO t (id, name) VALUES (1, 'a'); INSERT INTO t (id, name) VALUES (2, 'b');。 在生产环境下,这种做法性能极差:

  • 网络往返延时(RTT):单条插入 10,000 条数据意味着应用与数据库之间要进行 10,000 次网络通信往返;
  • 事务与 Redo Log 开销:如果没有显式开启大事务,每次单条插入都会触发一次事务提交与磁盘持久化刷盘(fsync);
  • 批量插入(Multi-row Insert):采用 INSERT INTO t (...) VALUES (...), (...), (...) 语法,将数百条记录打包在一次交互中完成,性能通常可提升 10 到 50 倍以上。

分批大小(Batch Size)设定与防坑指南

分批策略 单条 SQL 数据行数 适用场景 潜在风险与注意事项
单行独立 INSERT 1 行 / 条 极少量测试数据(小于 20 条)或排查单行主键冲突 数据量大时耗时极长,网络开销剧增
每批 100 ~ 500 条 (推荐) 100 ~ 500 行 / 条 生产环境主流实践,平衡网络利用率与内存占用 兼顾事务回滚粒度与服务器性能
全部合并为 1 条 全部行数 小文件快速导入(千行以内) 行数过大可能触发 MySQL max_allowed_packet 限制导致连接中断报错

主键/唯一索引冲突处理策略

  1. 标准 INSERT INTO:若发生主键或唯一键冲突,直接报错并中断整个事务;
  2. MySQL (INSERT IGNORE):忽略冲突行,跳过报错继续执行后续数据插入;
  3. MySQL (ON DUPLICATE KEY UPDATE):遇到唯一键冲突时,自动触发更新非主键字段最新值;
  4. PostgreSQL / SQLite (ON CONFLICT DO NOTHING):遇到冲突行静默跳过,保证执行不中断。