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