跳到内容
🛠️ToolsShed

SQL INSERT生成器

从表格数据输入生成SQL INSERT语句。

引号样式:
SQL 输出

关于此工具

SQL INSERT 生成器是一个开发者工具,能将表格式数据转换为可直接执行的 SQL INSERT 语句。无论您是从电子表格迁移数据、创建测试数据、还是为数据库填充初始值,这个工具都能消除手动编写 INSERT 语法的繁琐工作。它读取数据结构并生成语法正确的 SQL,可适用于 MySQL、PostgreSQL、SQLite 和 SQL Server 等大多数关系型数据库。

使用时,将表格数据(来自电子表格、CSV 文件或文本表)粘贴到输入区域,并选择目标数据库类型。生成器会自动检测列、推断数据类型、处理特殊字符和转义,生成可直接粘贴到数据库客户端的干净 SQL 代码。您可以在执行前自定义表名并调整任何生成的语句。

这个工具对于设置测试环境的开发者、初始化新实例的数据库管理员和准备批量导入的数据工程师特别有价值。它能处理 NULL 值、字符串转义、日期格式等常见边界情况,节省时间并减少可能导致导入操作失败的语法错误。

常见问题

代码实现

# Generate SQL INSERT statements from a list of dicts
def generate_inserts(table, rows, batch=False):
    if not rows:
        return ""
    columns = ", ".join(rows[0].keys())
    def fmt(v):
        if isinstance(v, (int, float)):
            return str(v)
        return f"'{str(v).replace(chr(39), chr(39)+chr(39))}'"

    if batch:
        values = ",\n  ".join(
            "(" + ", ".join(fmt(v) for v in row.values()) + ")"
            for row in rows
        )
        return f"INSERT INTO {table} ({columns})\nVALUES\n  {values};"
    else:
        return "\n".join(
            f"INSERT INTO {table} ({columns}) VALUES ({', '.join(fmt(v) for v in row.values())});"
            for row in rows
        )

rows = [
    {"id": 1, "name": "Alice", "email": "alice@example.com"},
    {"id": 2, "name": "Bob",   "email": "bob@example.com"},
]
print(generate_inserts("users", rows, batch=True))

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.