操作与实例

把 JSON 或 CSV 转成可核对的 SQL INSERT

先选择数据库类型并检查列映射,再生成 SQL。工具只输出文本,不会连接数据库、创建数据表或执行脚本。

如何操作

  1. 选择输入格式与目标表

    JSON 输入可以是对象或对象数组;CSV 必须有表头,并选择对应分隔符。选择 PostgreSQL 或 MySQL,填写 users 这样的单个表名。

  2. 读取、选择并重命名列

    点击“读取字段”,检查源列、取消不需要的列,并修改目标列名。编号等值必须保持文本时,不要开启 CSV 类型推断。

  3. 根据目标表结构检查脚本

    生成预览后检查 NULL、引号和大整数,再复制或下载完整脚本。执行前应在测试数据库确认目标列类型与约束。

输入与预期输出

保留大整数,并处理字符串中的单引号

界面设置: 输入格式选择 JSON,数据库选择 PostgreSQL,表名 users,每条 INSERT 行数 100。保留所有列和原列名。

输入
[{"id":9007199254740993,"name":"O'Reilly","active":true},{"id":2,"name":null}]
预期输出
INSERT INTO "users" ("id", "name", "active") VALUES
(9007199254740993, E'O''Reilly', TRUE),
(2, NULL, NULL);

大整数按原数字输出,不经过 JavaScript 浮点舍入。PostgreSQL 使用 E 字符串明确处理转义。第二条记录中为 null 的 name 和缺失的 active 都会写成 SQL NULL,目标表必须允许这些值。

将 CSV 编号、布尔样式文本和空单元格保留为字符串

界面设置: 输入格式选择 CSV,分隔符为逗号,数据库为 PostgreSQL,表名 records。不勾选“推断 CSV 数字、布尔与 null”。

输入
code,active,note
00123,true,
00124,false,ready
预期输出
INSERT INTO "records" ("code", "active", "note") VALUES
(E'00123', E'true', E''),
(E'00124', E'false', E'ready');

前导零和 true/false 文本仍然是字符串。明确存在的空 CSV 单元格是空字符串;行长度不足而缺失的单元格才会成为 NULL。导入前应确认这一区别。

边界与检查事项

表名限制与列名冲突
表名只能是单个标识符,不能填写 public.users 或 SQL 表达式。重复的目标列名、不存在的源列都会被拒绝,请通过“读取字段”明确选择和重命名。
大小限制与数据库数值边界
输入最多 1 MiB、10,000 行和 100 列,输出最多 10 MiB。MySQL 模式会拒绝无法在 65 位数字和 30 位小数范围内精确保留的数值;即使生成成功,目标字段的其他限制仍可能导致执行失败。

结果解读与常见疑问

嵌套对象会自动展开成 SQL 列吗?

不会。嵌套 JSON 对象和数组会序列化为一个值中的 JSON 文本。应选择合适的目标字段类型,或在生成 SQL 前先调整数据结构。

保留原始数字就能保证 INSERT 成功吗?

不能。工具避免的是浏览器舍入,实际精度、范围和可接受值仍由数据库字段决定。工具不连接数据库,也无法检查权限、唯一性或应用约束。