Back to skills
extension
Category: OtherNo API key required

sql-to-dict

将SQL建表脚本整理为标准数据字典Excel。此技能适用于用户需要把SQL文件(含CREATE TABLE语句)转换为结构化的数据字典Excel的场景。触发词包括:整理数据字典、SQL转Excel、建表脚本转字典、生成数据字典、数据字典等。

personAuthor: user_f16232achubcommunity

SQL转数据字典

概述

将SQL建表脚本(含CREATE TABLE语句)解析为标准格式的数据字典Excel文件,包含「目录」和「表结构」两个Sheet。

使用场景

当用户提供SQL文件或SQL脚本内容,并要求:

  • 整理/生成数据字典
  • 将建表脚本转为Excel
  • SQL转数据字典

工作流程

1. 获取SQL文件

  • 如果用户提供了SQL文件路径,直接读取
  • 如果用户直接粘贴SQL内容,将其保存为临时文件后处理

2. 确认输出路径

  • 默认输出路径:与SQL文件同目录,文件名为 {sql文件名}数据字典.xlsx
  • 如用户指定了输出路径则使用用户指定的路径

3. 执行转换

运行脚本 scripts/sql_to_dict.py

python {skill_dir}/scripts/sql_to_dict.py <input.sql> <output.xlsx>

使用 managed Python 环境:

"C:\Users\lx\.workbuddy\binaries\python\envs\default\Scripts\python.exe" "{skill_dir}/scripts/sql_to_dict.py" <input.sql> <output.xlsx>

注意:需要 openpyxl 包。如果脚本运行报错缺少模块,先执行:

"C:\Users\lx\.workbuddy\binaries\python\envs\default\Scripts\pip.exe" install openpyxl

4. 验证结果

脚本执行后会打印解析的表数量和字段数量。确认与SQL文件内容一致。

5. 交付文件

使用 open_result_view 展示生成的Excel,并使用 deliver_attachments 交付文件。

自定义模板

如果用户提供了自定义的数据字典模板Excel,需要参照其格式调整输出。模板格式的详细规范参见 references/template_format.md

关键格式要点:

  • Sheet1「目录」:数据库名称 | 表中文名 | 表英文名 | 表说明
  • Sheet2「表结构」:每张表一个区域
    • 第1行:A=表中文名, B=表英文名, C:G合并=表说明(thin边框,行高25.5)
    • 第2行:字段中文名 | 字段英文名 | 字段类型 | 注释 | 是否主键 | 是否非空 | 默认值(thin边框)
    • 第3行起:字段数据(dotted边框,宋体10号)
    • 表间留2空行

常见问题

  1. SQL方言差异:当前脚本主要支持MySQL语法的CREATE TABLE。如遇到其他方言(如PostgreSQL、Oracle),需要适配脚本中的正则表达式。
  2. 字符编码:SQL文件默认按UTF-8读取,如遇到编码问题需指定正确的编码。
  3. PRIMARY KEY位置:PRIMARY KEY约束可能出现在字段列表之前或之后,脚本已处理回溯标记主键列的逻辑。