基于脚本的 Excel 数据到 SQL 自动化生成指南

Smart AI Code2026-10-03阅读约 4 分钟

在数据库开发或测试过程中,客户频繁变更测试数据是常见场景。每次拿到新的 Excel 文件,如果依靠手工修改 SQL,不仅耗时,而且容易出错。本文介绍一种基于脚本的自动化方案,只需将 Excel 文件放入指定目录并运行一条命令,即可自动生成对应的 DDL 和 DML 脚本。

脚本来源与定位

该生成器脚本源自 cnblogs 上的一篇分享,位于项目的 scripts/generate_v2.py。需要说明的是,这个脚本并非开箱即用的通用工具,而是针对具体项目文件结构、借助 AI 生成的定制脚本。只要客户的文件结构没有大的变化,后续更换数据时可以直接复用,无需每次重新生成。

使用前必须了解的约定

为了让脚本正确解析数据,请遵守以下约定:

  • 文件名作为表名:例如 user.xlsx 对应的表名就是 user。
  • 第一行必须是字段名:脚本将此行作为列标识。
  • 默认读取第一个工作表:如果 Excel 文件包含多个工作表,脚本只处理第一个。
  • 第二行起全部作为数据:从第二行开始的所有行都视为待插入的数据。
  • reference/ 目录下所有 .xlsx 文件都会参与生成:无需逐个指定,放入即用。

分步操作流程

1. 准备 Excel 文件

将更新后的 .xlsx 文件放入项目的 reference/ 目录,确保文件符合上述约定,特别是第一行为字段名。

2. 运行生成器

确认已安装脚本所需依赖(如 Python 3 及对应的第三方库),然后在项目根目录执行:

bash python3 scripts/generate_v2.py

3. 检查生成结果

执行后,终端会输出生成的表数和总行数,格式为:

Generated <表数> tables and <总行数> rows

具体数值取决于 reference/ 中的文件内容。同时,脚本会覆盖生成 scripts/v2/ 下的以下文件:

  • 01_ddl.sql — 表结构创建语句
  • 02_dml.sql — 数据插入语句
  • 03_verify.sql — 数据校验脚本
  • run_all.sql — 包含上述所有步骤的综合脚本
  • 生成清单.md — 记录了每个文件的哈希、列数和行数

建议先查看终端输出,再打开 scripts/v2/生成清单.md,核对文件哈希、列数和行数是否符合预期,以便在执行前尽早发现数据或格式问题。

4. 执行生成的 SQL 脚本

确认生成无误后,在目标数据库中执行这些脚本。注意:生成的 V2 脚本在执行时会删除并重建同名表,属于破坏性操作,可能导致原有数据丢失。因此:

  • 执行前务必确认目标数据库,并做好数据备份。
  • 优先在测试环境验证,确认无误后再在生产环境执行。
  • 必要时准备好回滚方案。

另外,旧版 scripts/*.sql 不会被修改,原有脚本保持原样。

小结

通过这个脚本,只需更换 reference/ 中的 Excel 文件并运行一条命令,即可完成从数据到 SQL 的自动化生成,显著减少手工操作带来的错误和时间成本。将重复性工作交给脚本,是提升效率的可行路径。

如果你在使用中遇到问题,或希望将脚本集成到更自动化的工作流中,可以进一步探索错误处理、日志记录等扩展方向。